预验证方法可帮助你在客户流量通过 Cloudflare 代理之前验证域名所有权。
当客户无法容忍任何停机时间时,请使用预验证方法,这在生产域名中经常出现。
缺点是这些方法需要客户完成额外的设置步骤。尤其是如果你已经需要他们为证书验证向其域名添加内容,预验证可能会使他们的接入更加复杂。
如果客户可以接受短暂停机,且你希望他们的设置更简单,请参阅我们的实时验证方法。
TXT 验证是指客户向其权威 DNS 添加 TXT 记录以验证域名所有权。
设置 TXT 验证:
-
当你创建自定义主机名时,保存
ownership_verification信息。{ "result": [ { "id": "3537a672-e4d8-4d89-aab9-26cb622918a1", "hostname": "app.example.com", // ... "status": "pending", "verification_errors": ["custom hostname does not CNAME to this zone."], "ownership_verification": { "type": "txt", "name": "_cf-custom-hostname.app.example.com", "value": "0e2d5a7f-1548-4f27-8c05-b577cb14f4ec" }, "created_at": "2020-03-04T19:04:02.705068Z" } ] } -
让客户在其权威 DNS 提供商处添加具有该
name和value的TXT记录。 -
几分钟后,你将在 UI 中看到主机名状态变为 Active(活动)。
-
激活自定义主机名后,客户可以移除
TXT记录。
HTTP 验证是指你或客户在其源服务器上放置 HTTP 令牌以验证域名所有权。
设置 HTTP 验证:
当你使用 API 创建自定义主机名时,Cloudflare 会在响应中提供 HTTP ownership_verification 记录。
获取并使用 ownership_verification 记录:
-
调用 API 以创建 Custom Hostname。
-
在响应中,从
ownership_verification_http对象复制http_url和http_body:Example response (truncated)json { "result": [ { "id": "24c8c68e-bec2-49b6-868e-f06373780630", "hostname": "app.example.com", // ... "ownership_verification_http": { "http_url": "http://app.example.com/.well-known/cf-custom-hostname-challenge/24c8c68e-bec2-49b6-868e-f06373780630", "http_body": "48b409f6-c886-406b-8cbc-0fbf59983555" }, "created_at": "2020-03-04T20:06:04.117122Z" } ] } -
让客户将
http_url和http_body放置在其源 Web 服务器上。Example response (truncated)txt location "/.well-known/cf-custom-hostname-challenge/24c8c68e-bec2-49b6-868e-f06373780630" { return 200 "48b409f6-c886-406b-8cbc-0fbf59983555\n"; }Cloudflare 将通过向
http_url发送GET请求并使用User-Agent: Cloudflare Custom Hostname Verification来访问此令牌。 -
几分钟后,你将在 UI 中看到主机名状态变为 Active(活动)。
-
主机名变为 active 后,客户可以从源服务器移除令牌。
在接入主机名已在其他提供商处上线的客户时,你可以将预验证与手动 HTTP DCV 结合使用,以实现零停机迁移:
- 使用
"ssl": {"method": "http", "type": "dv"}创建自定义主机名。 - 使用 TXT 记录完成主机名所有权预验证,使主机名达到
status: active。 - 等待
ssl.validation_records填充 HTTP DCV 令牌(一对http_url和http_body)。 - 请客户在当前实时源站的
http_url路径上提供 DCV 令牌。证书颁发机构将根据当前 DNS 目标进行验证。 - 一旦
ssl.status达到active,主机名和证书都已就绪。 - 客户现在可以更新其 DNS CNAME 以指向你的 SaaS 目标,而不会中断——证书已签发。