委托 DCV 允许采用部分 DNS 设置的 zone——即权威 DNS 不由 Cloudflare 提供——将 DCV 流程委托给 Cloudflare。
DCV Delegation 要求您放置一条一次性记录,允许 Cloudflare 自动续订所有未来的证书订单,以便在续订时无需人工干预。
| Free | Pro | Business | Enterprise | |
|---|---|---|---|---|
Availability | Included with Advanced Certificate Manager | Included with Advanced Certificate Manager | Included with Advanced Certificate Manager | Included with Advanced Certificate Manager |
当以下所有条件均为真时,应使用委托 DCV:
- 您的 zone 使用部分 DNS 设置。
- Cloudflare 尚未自动执行 DCV。
- 您的 zone 使用 Advanced 证书。
- 证书颁发机构为 Google Trust Services、SSL.com 或 Let's Encrypt
如公告博文 ↗中所述,目前您一次只能将 DCV 委托给一个提供商。这意味着:
-
如果您还为同一主机名的源服务器签发公开受信任的证书,这将不再可能。您可以改用 Cloudflare origin CA 证书。
-
如果您的 zone 使用多个 CDN 提供商,您可能希望使用替代方法。这是因为一旦为 Cloudflare 配置了 DCV 委托,只有 Cloudflare 能够代表您执行 DCV,从而阻止外部 CDN 提供商执行相同操作。
要设置委托 DCV:
- 为您的 zone 订购 advanced 证书,选择
TXT作为 Certificate validation method(证书验证方法)。 - 在 Edge Certificates(边缘证书) ↗ 页面上,前往 DCV Delegation for Partial Zones(部分区域的 DCV 委托)。
- 复制 Cloudflare 验证 URL。
- 在您的权威 DNS 提供商处,考虑以下内容创建
CNAME记录:
- 如果您的证书仅覆盖根域名和通配符,您只需为根域名创建一条
CNAME记录。任何直接子域名也将被覆盖。
_acme-challenge.example.com CNAME example.com.<COPIED_VALIDATION_URL>.- 如果您的证书还按名称覆盖子域名,您需要向权威 DNS 提供商添加多条
CNAME记录,每个特定子域名一条。
例如,覆盖 example.com、*.example.com 和 sub.example.com 的证书将需要以下记录。
_acme-challenge.example.com CNAME example.com.<COPIED_VALIDATION_URL>.
_acme-challenge.sub.example.com CNAME sub.example.com.<COPIED_VALIDATION_URL>.一旦 CNAME 记录就位,只要 zone 在 Cloudflare 上处于活动状态,Cloudflare 就会为 Advanced 证书上具有 DCV 委托记录的每个主机名添加 TXT DCV 令牌。
因为 DCV 会定期发生,请勿在权威 DNS 提供商处移除 CNAME 记录。否则,Cloudflare 将无法代表您执行 DCV,您的证书将无法签发。
如果您使用 dig 命令进行测试,仅当证书即将签发时才能看到已放置的令牌。
这是因为 Cloudflare 在需要时放置令牌,然后清理它们。
dig TXT +noadditional +noquestion +nocomments +nocmd +nostats _acme-challenge.example.com. @1.1.1.1
_acme-challenge.example.com. 3600 IN CNAME example.com.<COPIED_VALIDATION_URL>如果主机名在证书续订时变得不可达,证书将无法通过委托 DCV 自动续订。如果您需要为当前无法解析的主机名续订证书,可以向更改 DCV 方法 API 端点发送 PATCH 请求,并将方法更改为 TXT,以按照 TXT DCV 方法进行手动续订。
一旦主机名再次可解析,委托 DCV 将按预期恢复工作。
如果您将 zone 移至另一个账户,您需要使用新的验证 URL 更新权威 DNS 提供商处的 CNAME 记录。