HTTP 验证涉及将 DCV 令牌添加到客户的源站。
你在创建自定义主机名时选择一种证书验证方法。API 接受一个 ssl.method 值:http、txt 或 email。
如果你的自定义主机名不包含通配符,在主机名指向你的 SaaS 目标后,Cloudflare 会尝试通过 HTTP 验证 完成 DCV,即使你选择了 TXT 作为验证方法。
只要客户的主机名指向你的 SaaS 目标,并且他们没有任何 CAA 记录 阻止你选择的证书颁发机构,此 HTTP 验证就应成功。
不允许对通配符证书使用 HTTP DCV 验证。请改用 TXT 验证。你还可以配置 Delegated DCV 以自动完成基于 TXT 的验证。
如果你看重简便性,且客户可以接受几分钟的停机时间,你可以依赖 Cloudflare 的自动 HTTP 验证。
一旦你创建新主机名并选择 http 验证方法,客户只需向你的 $CNAME_TARGET 添加 CNAME,其余工作由 Cloudflare 完成。
自动 HTTP 验证是即时进行的。客户将主机名指向你的 SaaS 目标后,Cloudflare 可以从边缘提供 CA 的 HTTP DCV 令牌并完成证书验证。
在此期间,主机名可能会在证书达到 ssl.status: active 之前路由到 Cloudflare。如果需要在客户更改 DNS 之前激活证书,请改用 TXT 验证 或 Delegated DCV。
What happens after you create the custom hostname
Cloudflare 联系我们的证书颁发机构(CA)提供商之一,请求为指定主机名签发证书。CA 将通知 Cloudflare,我们需要通过在指定的 $DCV_FILENAME 处返回 $DCV_TOKEN 来证明对该主机名的控制;令牌和文件名均由 CA 随机生成,Cloudflare 事先并不知道。
例如,若您为 site.example.com 创建新的 custom hostname,CA 可能要求我们在 http://site.example.com/.well-known/pki-validation/ca3-39f423f095be4983922ca0365308612d.txt" 的请求中返回值 ca3-38734555d85e4421beb4a3e6d1645fe6。一旦我们从 CA 收到该值,我们就会在边缘使其可访问,并请求 CA 确认其存在,以便他们完成验证和证书订单。
如果你希望在要求客户更新 CNAME 之前(或在将目标 CNAME 的解析更改为由 Cloudflare 代理之前)完成签发流程,请选择其他验证方法。
一旦您创建新主机名并选择此验证方法,您将在几秒钟后看到以下值:
- API:在
ssl对象中,保存validation_records数组中的值(特别是http_url和http_body)。 - Dashboard(仪表板):在 Custom Hostnames(自定义主机名) ↗ 页面查看单个证书时,请参阅 Certificate validation request(证书验证请求) 和 Certificate validation response(证书验证响应) 的值。
在源站,使 http_body 可在 http_url 指定的路径上通过 TXT 记录访问。此路径还应可供 Internet 上的任何人公开访问,以便你的 CA 可以访问它。
以下是返回令牌的 NGINX 配置示例:
location "/.well-known/pki-validation/ca3-0052344e54074d9693e89e27486692d6.txt" {
return 200 "ca3-be794c5f757b468eba805d1a705e44f6\n";
}配置生效后,使用 curl 测试 DCV 文本文件是否已就位:
curl "http://http-preval.example.com/.well-known/pki-validation/ca3-0052344e54074d9693e89e27486692d6.txt"ca3-be794c5f757b468eba805d1a705e44f6该令牌在一个检查周期内有效。在下一个检查周期,Cloudflare 将要求 CA 重新检查该 URL、完成验证并签发证书。
如果您希望立即请求重新检查,而无需等待下一次重试,请发送一个 PATCH 请求,其值与最初的 POST 请求相同。