bg-blog-articles

什么是域名控制验证(DCV)?SSL证书验证方法完整指南

当您订购SSL/TLS证书时,证书颁发机构不会直接颁发给您。他们需要证明您确实拥有正在保护的域名。这就是域名控制验证(DCV)的作用所在。这是一个在颁发任何证书之前确认域名所有权的验证过程。

域名控制验证(DCV)

这不仅仅是官僚繁文缛节。DCV可以防止攻击者获得他们不拥有的域名的有效证书,否则将彻底破坏维持HTTPS安全的信任模型。CA/Browser Forum(为证书颁发设定基线要求的行业机构)规定了所有证书颁发机构必须遵循的特定DCV方法。

在本指南中,我们将详细解释什么是DCV,探讨可用的不同验证方法,并帮助您为您的基础设施选择合适的方法。


目录

  1. 什么是域名控制验证(DCV)?
  2. 基于电子邮件的域名验证方法
  3. 基于DNS的DCV方法
  4. 基于HTTP/HTTPS文件的验证方法
  5. 特殊验证场景
  6. 为您的需求选择合适的DCV方法
  7. 常见DCV问题及快速修复方法

今天从 SSL Dragon 订购 SSL 证书,可节省 10% 的费用!

快速发行、强大加密、99.99% 的浏览器信任度、专业支持和 25 天退款保证。优惠券代码SAVE10

龙飞行的详细图像

什么是DCV(域名控制验证)?

域名控制验证(DCV)是证书颁发机构在颁发SSL/TLS证书之前用于验证域名所有权的过程。它通过要求申请人通过电子邮件回复、向域名上传文件或配置DNS记录来证明对该域名的控制权,从而确认控制权。

该过程的工作方式如下:CA生成一个唯一的验证挑战(通常是随机字母数字字符串),您通过域名的基础设施进行响应以证明控制权。这可以通过DNS记录、您的Web服务器或管理员电子邮件地址来实现。一旦验证通过,CA就知道他们是将证书颁发给合法的域名所有者,而不是试图冒充您网站的人。

行业标准与合规性

CA/Browser Forum的基线要求确切规定了DCV必须如何执行。这些不是建议,而是CA必须遵循的严格规则,否则将面临失去浏览器中受信任地位的风险。

当前标准包括:

  • 验证必须使用经批准的DCV方法之一(下文将详细介绍)
  • 多视角颁发验证(MPIC)要求从多个网络视角进行验证,以防止局部攻击
  • 对于组织验证(OV)和扩展验证(EV)证书,验证结果可重用397天
  • 域名验证(DV)证书不能重用验证结果,每次续订都必须重新验证

重要提示:这些要求正在收紧。整个行业正在缩短证书的最长有效期和验证周期。

CA/Browser Forum已经明确了证书有效期的清晰时间表:自2026年3月15日起限制为200天,自2027年3月15日起进一步缩短为100天,从2029年3月15日起为47天。

这种收紧也影响验证周期,使得频繁重新验证和SSL证书自动化变得越来越有必要。

DCV时间表2025-2029

基于电子邮件的域名验证方法

1. 构造电子邮件验证

电子邮件验证是最常见的DCV方法,因为它简单且不需要对您的基础设施进行任何技术更改。CA会向您域名下的特定地址发送包含验证链接或代码的电子邮件。

CA会尝试以下通用电子邮件地址:

您不需要设置全部这些地址,列表中只要有一个正常工作的地址即可。CA会检查您域名的MX记录以确认电子邮件可以送达,然后发送验证请求。

当电子邮件到达后,您需要点击验证链接或将代码复制回证书订购平台。如果您的电子邮件配置正确,这个过程通常只需几分钟。

这种方法在以下情况下效果很好:

  • 您已为域名建立了电子邮件基础设施
  • 您偶尔订购证书,而不是大规模订购
  • 您希望使用最简单的验证过程,无需更改DNS或Web服务器

缺点是什么?您无法轻松实现自动化,而且如果您的电子邮件宕机或这些地址无人监控,验证将会失败。

2. 电子邮件转DNS TXT联系人

这种变体将电子邮件与DNS结合起来。您不使用通用地址,而是在DNS TXT记录中的_validation-contactemail.yourdomain.com发布特定的电子邮件地址。CA会读取该记录并向该地址发送验证。

为什么使用这种方法?

  • 可重用性:一旦配置好,在整个验证有效期内都保持有效
  • 集中控制:您可以准确决定哪个电子邮件地址接收验证请求
  • 团队友好:可以指向一个通讯组列表,而不是某个人的个人收件箱

以下是实际设置方式:

_validation-contactemail.yourdomain.com. IN TXT "mailto:[email protected]"

只需使用您首选的联系邮箱创建此DNS TXT记录,CA就会自动使用它。这对于管理多个证书的组织尤其有用。您可以通过一个受监控的收件箱,在所有域名之间实现验证标准化。


基于DNS的DCV方法

1. DNS TXT记录验证

DNS TXT记录验证因其灵活性和自动化潜力而广受欢迎。当您订购证书时,CA会提供特定的主机名和验证令牌,您需要将其作为TXT记录添加到您域名的DNS中。

基本流程如下:

  1. CA在证书订购过程中提供一个主机名(通常为_dvsauth.yourdomain.com)和令牌
  2. 您创建以该令牌为值的TXT记录
  3. CA查询您的DNS以确认记录存在
  4. 一旦验证通过,他们就会颁发证书

该记录通常如下所示:

_dvsauth.yourdomain.com. IN TXT "ab1c2d3e4f5g6h7i8j9k0l1m2n3o4p5q"

DNS TXT验证非常适合以下场景:

  • 自动化 – DNS API使其可以通过ACME客户端或自定义工具编写脚本
  • 没有Web服务器的环境 – 您只需要DNS访问权限
  • 通配符证书 – 我们将在特殊场景部分详细介绍此要求

需要注意的一点是:DNS传播时间。如果您的名称服务器TTL值较高或传播较慢,验证可能需要更长时间。大多数CA会重试24小时,但最好在添加验证记录之前将TTL值设置得低一些。

2. DNS CNAME记录方法

CNAME验证使用不同的记录类型,但实现相同的目标。您不用直接存储验证令牌,而是创建一个指向CA控制的验证目标的CNAME。

配置示例:

_dnsauth.yourdomain.com. IN CNAME random-token.dcv.digicert.com.

关键区别在于:CNAME指向的是CA控制的记录,这意味着他们可以更新验证目标,而无需您更改DNS。一些CA也允许将其用于域名预验证,您只需设置一次CNAME,他们就可以在您订购证书时随时进行验证。

在以下情况下,CNAME验证效果良好:

  • 您的DNS服务商使CNAME比TXT记录更容易管理
  • 您希望为OV/EV证书获得域名预验证能力
  • 您正在使用支持基于CNAME验证流程的CA

并非所有CA都提供CNAME验证,因此请与您的服务商核实。但在可用时,对于偏好这种DNS记录类型的团队来说,这是一个不错的选择。


今天从 SSL Dragon 订购 SSL 证书,可节省 10% 的费用!

快速发行、强大加密、99.99% 的浏览器信任度、专业支持和 25 天退款保证。优惠券代码SAVE10

龙飞行的详细图像

基于HTTP/HTTPS文件的验证方法

1. HTTP实际演示

基于文件的验证要求您在Web服务器上的指定路径放置一个特定的文件。然后CA会通过HTTP或HTTPS访问该文件,以确认您控制着托管该域名的服务器。

标准路径为: http://yourdomain.com/.well-known/pki-validation/fileauth.txt

CA会提供确切的文件名和内容。您在服务器上创建此文件,确保可以访问它,然后CA通过获取该文件进行验证。

关键实施要点:

如果您可以直接访问Web服务器,基于文件的验证会非常直接。但如果您使用文件系统访问受限的托管服务,或使用可能缓存或干扰验证请求的CDN,这种方法就不太理想了。

故障排除提示:

  • 确保重定向不会干扰验证。CA必须能够到达确切的验证URL
  • 检查防火墙是否允许HTTP/HTTPS访问
  • 禁用验证目录的缓存
  • 验证文件权限是否允许公共读取访问

2. ACME挑战集成

ACME(自动证书管理环境)协议使用HTTP-01和DNS-01挑战来实现自动化DCV。如果您使用Let’s Encrypt或其他兼容ACME的CA,您的ACME客户端会自动处理整个验证过程。

HTTP-01挑战:在/.well-known/acme-challenge/放置一个验证文件(与标准HTTP验证类似)

DNS-01挑战:在_acme-challenge.yourdomain.com创建一个TXT记录

您的客户端(如Certbot、acme.sh,或cPanel等平台中的集成工具)会处理验证和证书续订,无需人工干预。ACME已成为自动化证书管理的标准,尤其适用于管理大量证书库存的组织。


特殊验证场景

1. 多域名和SAN证书验证

如果您正在订购多域名证书(也称为SAN或UCC证书),您必须分别验证每个域名。单次DCV检查并不能覆盖证书上的所有域名。

示例:为example.com、www.example.com和shop.example.com申请的证书需要三次单独的验证,即使它们是相关的域名。

好消息是什么?您可以混合使用验证方法。如果符合您的基础设施,可以对一个域名使用电子邮件验证,对另一个域名使用DNS验证。CA的平台会跟踪每个域名的验证状态,只有在所有域名都通过验证后才会颁发证书。

2. 通配符域名验证

通配符证书(涵盖*.example.com)需要基于DNS的验证方法。出于安全考虑,大多数CA不接受通配符证书的电子邮件或HTTP验证。

为什么通配符证书需要DNS验证?

通配符证书可以保护无限数量的子域名。基于文件的验证一次只能证明对一个子域名的控制权,而电子邮件验证无法证明对所有可能子域名的控制权。DNS验证证明您控制着整个域名的DNS基础设施,这对于保护所有子域名的证书来说是合适的。

如果您需要通配符证书,请计划使用DNS TXT或CNAME验证。这些通常是您唯一的选择。

3. 子域名验证注意事项

您可以在子域名层级或父域名层级进行验证,具体取决于验证方法。对于HTTP验证,该文件必须在您正在验证的特定子域名上可访问。对于DNS验证,您需要在适当的子域名层级创建记录。

一个重要的区别:对于大多数验证方法而言,验证父域名(example.com)并不会自动验证子域名(blog.example.com)。除非您使用通配符证书,否则每个子域名都需要单独验证。


为您的需求选择合适的DCV方法

将方法与您的基础设施相匹配:

一览所有DCV方法对比

验证方法完成时间自动化能力技术要求通配符支持可重用性(OV/EV)最适用于
电子邮件(通用)5-30分钟❌ 低⭐ 极少✅ 是❌ 否一次性证书,小规模部署
电子邮件(DNS TXT)15-60分钟❌ 低⭐⭐ 低-中等✅ 是✅ 是(397天)拥有多个证书的团队,已建立电子邮件系统
DNS TXT记录10-60分钟✅ 高⭐⭐⭐ 中等✅ 是✅ 是(397天)自动化、通配符、大规模部署
DNS CNAME15-60分钟✅ 高⭐⭐⭐ 中等✅ 是✅ 是(397天)域名预验证、CA管理的令牌
HTTP文件5-20分钟⚠️ 中等⭐⭐ 低-中等❌ 否❌ 否直接服务器访问、IP地址
ACME(HTTP-01)2-10分钟✅ 非常高⭐⭐⭐⭐ 中-高❌ 否不适用(自动续订)完全自动化、Let’s Encrypt
ACME(DNS-01)2-10分钟✅ 非常高⭐⭐⭐⭐ 中-高✅ 是不适用(自动续订)带通配符的完全自动化

按场景选择方法

在以下情况下使用电子邮件验证:

  • 您有简单的一次性证书订单
  • 通用管理员电子邮件地址处于受监控状态
  • 您不需要自动化

在以下情况下使用DNS TXT/CNAME验证:

  • 您需要通配符证书
  • 您正在管理多个证书
  • 您没有Web服务器访问权限
  • 您需要自动化能力

在以下情况下使用HTTP文件验证:

  • 您拥有直接的Web服务器访问权限
  • 您正在验证IP地址
  • 您所在的组织难以进行DNS更改
选择DCV方法

常见DCV问题及快速修复方法

验证失败是常有的事。以下是您可能遇到的最常见错误以及如何快速解决它们。

HTTP文件验证:”404 Not Found”

错误:“The system queried for a temporary file at http://example.com/.well-known/pki-validation/[filename].txt, but the web server responded with the following error: 404 (Not Found).”

快速修复方法:

  • 手动创建目录结构:/public_html/.well-known/pki-validation/
  • 设置权限:目录设为755,文件设为644
  • 检查可能阻止/.well-known/路径的.htaccess规则
  • 如果域名刚刚添加,请等待24-48小时以完成传播
  • 测试可访问性:curl -v http://yourdomain.com/.well-known/pki-validation/test.txt

常见原因:验证文件路径不存在或无法公开访问。

HTTP验证:”Forbids DCV HTTP Redirections”

错误:“cPanel (powered by Sectigo) forbids DCV HTTP redirections.”

快速修复方法:

  • 在验证期间临时禁用到HTTPS的重定向
  • 将/.well-known/*路径从重定向规则中排除
  • 检查.htaccess、Cloudflare页面规则或服务器配置中是否存在重定向
  • 如果使用CDN,请临时禁用或添加例外

常见原因:您的站点将HTTP重定向到HTTPS,或重定向到另一个域名,阻止了CA的验证尝试。

DNS验证:”No TXT Record That Matches”

错误:“The DNS query to ‘_dvsauth.example.com’ for the DCV challenge returned no ‘TXT’ record that matches the value ‘[expected-value]’.”

快速修复方法:

  • 等待1-24小时以完成DNS传播(取决于TTL)
  • 验证确切的主机名和值:dig _dvsauth.example.com TXT +short
  • 检查验证令牌中是否存在复制粘贴错误
  • 如果使用委托DNS(NS记录),请在正确的服务商处添加TXT记录
  • 在添加验证记录之前,将TTL降低到300秒(5分钟)

常见原因:DNS尚未传播,或记录中存在拼写错误。

DNS验证:CAA记录阻止颁发

错误:“Certificate authority encountered a multiple perspective CAA check error.”

快速修复方法:

  • 检查现有的CAA记录:dig example.com CAA
  • 将您的CA添加到允许颁发者列表中:example.com. CAA 0 issue “digicert.com”
  • 使用ping.pe工具验证CAA记录是否在全球范围内可解析
  • 如果不存在CAA记录,则无需添加任何记录(不存在记录则允许所有CA)

常见原因:CAA记录限制了哪些CA可以为您的域名颁发证书。

电子邮件验证:未收到电子邮件

快速修复方法:

  • 首先检查垃圾邮件/垃圾箱文件夹
  • 验证以下地址是否存在并能接收电子邮件:admin@、administrator@、webmaster@、hostmaster@、postmaster@
  • 检查MX记录:dig example.com MX
  • 在您的垃圾邮件过滤器中将CA的发件域名列入白名单
  • 从CA的控制面板请求重新发送电子邮件

常见原因:验证电子邮件被垃圾邮件过滤器拦截,或管理员地址不存在。

平台特定问题:cPanel AutoSSL故障

错误:“Local HTTP DCV error: An internal error occurred.”

快速修复方法:

  • 检查WHM > Manage AutoSSL日志以获取详细信息
  • 等待30分钟后重试(通常会自动解决)
  • 在Sectigo和Let’s Encrypt服务商之间切换
  • 清除AutoSSL队列:WHM > Manage AutoSSL > Clear pending queue

快速诊断命令

在联系支持团队之前,请运行以下检查:

# Verify DNS propagation
dig yourdomain.com +short
dig _dvsauth.yourdomain.com TXT +short

# Test HTTP file accessibility
curl -v http://yourdomain.com/.well-known/pki-validation/test.txt

# Check CAA and MX records
dig yourdomain.com CAA
dig yourdomain.com MX

借助SSL Dragon简化您的SSL证书管理

正确处理域名控制验证对于顺利部署证书至关重要。SSL Dragon提供来自受信任证书颁发机构的证书,并支持您所需的所有验证方法,无论您偏好电子邮件、DNS还是基于HTTP的验证。

我们的团队会帮助您应对域名验证、组织验证和扩展验证证书的DCV要求。我们会为您详细介绍与您的基础设施相匹配的验证方法,并在出现验证问题时回答您的疑问。

不要再为证书验证而烦恼了。浏览我们的SSL证书选项!

立即订购 SSL 证书, 可节省 10% 的费用!

快速发行, 强大加密, 99.99% 的浏览器信任度, 专业支持和 25 天退款保证. 优惠券代码 SAVE10

龙飞行的详细图像
撰写人

经验丰富的内容撰稿人, 擅长 SSL 证书. 将复杂的网络安全主题转化为清晰, 引人入胜的内容. 通过有影响力的叙述, 为提高数字安全作出贡献.