Cloudflare:更改DCV的方法

來源: Cloudflare
作者:Cloudflare
時間:2021-01-08
17743
在公共信任的證書頒發(fā)機構(gòu)為主機名頒發(fā)證書之前,請求者必須證明他們可以控制該主機名。有幾種方法可以用來完成此過程,Cloudflare使用的主要方法是:HTTP令牌、CNAME DNS記錄、TXT DNS記錄。

什么是域控制驗證(DCV)?

在公共信任的證書頒發(fā)機構(gòu)為主機名頒發(fā)證書之前,請求者必須證明他們可以控制該主機名。 (在此上下文中,域名和主機名可以互換使用)

有幾種方法可以用來完成此過程,Cloudflare使用的主要方法是:

HTTP令牌

CNAME DNS記錄

TXT DNS記錄

使用Cloudflare完成域的DCV

通過更新您的注冊商以使用Cloudflare名稱服務(wù)器來注冊Cloudflare時,Cloudflare能夠代表您自動處理DCV。

對于使用CNAME設(shè)置的域,此過程并不那么簡單。

更改證書訂單的DCV方法主要是CNAME設(shè)置區(qū)域的主題。

默認情況下,在CNAME設(shè)置下使用Universal SSL,Cloudflare將放置一個HTTP令牌來完成DCV。證書頒發(fā)機構(gòu)可在以下情況下立即使用此令牌:

主機名具有從域名權(quán)威DNS到Cloudflare的CNAME。

在Cloudflare的DNS設(shè)置中,主機名是橙云。

這意味著默認情況下,在頒發(fā)證書之前,給定主機名的上述各項必須完整。

據(jù)報告,一旦更改DNS,頒發(fā)證書的過程非常快,但是您可能需要堅定保證,在進行轉(zhuǎn)換之前,您的證書已準備就緒,以避免任何潛在的停機時間。

使用客戶端API,我們可以更改驗證方法,以允許在通過實時流量之前頒發(fā)證書。

Apex驗證

即使不希望為該主機名提供代理服務(wù),除非使用Cloudflare切換到完整DNS配置,但完成以上針對域最高端的過程將使我們能夠為所有子域完成DCV。

作為最佳實踐,即使您不打算在CNAME設(shè)置中代理頂點的流量,也最好根據(jù)頂點進行驗證。

否則,需要手動驗證每個子域。

1.檢查驗證方法

首先,找到cert_pack_uuid您要更改驗證方法的順序。

curl -sX GET \

"https://api.cloudflare.com/client/v4/zones/:zone_id/ssl/verification/" \

-H 'X-Auth-Email: YOUR_EMAIL' \

-H 'X-Auth-Key: API_KEY'

{

    "result": [

        {

            "certificate_status": "pending_validation",

            "cert_pack_uuid": "4228d4df-b9c7-47bb-8903-ff76452458b1",

            "validation_method": "http",

            "validation_type": "dv",

            "verification_info": {

                "http_url": "http://example.com/.well-known/pki-validation/ca3-15cd5a33b4fd469784851d8c021e3ee3.txt",

                "http_body": "ca3-d4db80cdcb40496ab71a66a0ab985306"

            },

            "hostname": "example.com"

        },

    ],

    "success": true,

    "errors": [],

    "messages": []

}

這向我們顯示了創(chuàng)建的掛單,并且完成驗證所需的HTTP DCV信息位于verification_info元素中。

您可以在此處將驗證方法更改為CNAME或TXT記錄。

讓我們繼續(xù),將DCV方法更改為CNAME。

2.變更確認方法

該端點將修改所選證書訂單的驗證方法。請注意validation_method在請求正文中設(shè)置的值。

curl -X PATCH "https://api.cloudflare.com/client/v4/zones/:zone_id/ssl/verification/<cert_pack_uuid>" \

     -H "X-Auth-Email: user@example.com" \

     -H "X-Auth-Key: API_KEY" \

     -H "Content-Type: application/json" \

     --data '{"validation_method":"cname"}'

{

    "result": {

        "certificate_status": "pending_validation",

        "cert_pack_uuid": "4228d4df-b9c7-47bb-8903-ff76452458b1",

        "validation_method": "cname",

        "validation_type": "dv",

        "verification_info": {

            "cname": "_ca3-e82a555f7fe04fb394d2b14c7eb24946.example.com",

            "cname_target": "dcv.digicert.com"

        },

        "status": "pending_validation",

        "hostname": "example.com"

    },

    "success": true,

    "errors": [],

    "messages": []

}

然后,您可以verification_info在權(quán)威DNS中獲取并設(shè)置CNAME記錄的值??梢酝ㄟ^使用執(zhí)行此類手動DNS查找來驗證這一點dig。

$ dig _ca3-e82a555f7fe04fb394d2b14c7eb24946.example.com cname +short

dcv.digicert.com.

3.驗證狀態(tài)現(xiàn)在處于活動狀態(tài)

一旦通過證書頒發(fā)機構(gòu)驗證,“獲取驗證方法”端點將按以下順序顯示訂單:

curl -sX GET \

"https://api.cloudflare.com/client/v4/zones/:zone_id/ssl/verification/" \

-H 'X-Auth-Email: YOUR_EMAIL' \

-H 'X-Auth-Key: API_KEY'

{

    "result": [

        {

            "certificate_status": "active",

            "cert_pack_uuid": "4228d4df-b9c7-47bb-8903-ff76452458b1",

            "validation_method": "http",

            "validation_type": "dv",

            "hostname": "example.com"

        }

    ],

    "success": true,

    "errors": [],

    "messages": []

}

狀態(tài):active表示證書已部署到Cloudflare的邊緣網(wǎng)絡(luò),并且將HTTP流量代理到Cloudflare后將立即提供證書。

立即登錄,閱讀全文
版權(quán)說明:
本文內(nèi)容來自于Cloudflare,本站不擁有所有權(quán),不承擔相關(guān)法律責任。文章內(nèi)容系作者個人觀點,不代表快出海對觀點贊同或支持。如有侵權(quán),請聯(lián)系管理員(zzx@kchuhai.com)刪除!
優(yōu)質(zhì)服務(wù)商推薦
更多