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

这不仅仅是官僚繁文缛节。DCV可以防止攻击者获得他们不拥有的域名的有效证书,否则将彻底破坏维持HTTPS安全的信任模型。CA/Browser Forum(为证书颁发设定基线要求的行业机构)规定了所有证书颁发机构必须遵循的特定DCV方法。
在本指南中,我们将详细解释什么是DCV,探讨可用的不同验证方法,并帮助您为您的基础设施选择合适的方法。
目录
什么是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证书自动化变得越来越有必要。

基于电子邮件的域名验证方法
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中。
基本流程如下:
- CA在证书订购过程中提供一个主机名(通常为_dvsauth.yourdomain.com)和令牌
- 您创建以该令牌为值的TXT记录
- CA查询您的DNS以确认记录存在
- 一旦验证通过,他们就会颁发证书
该记录通常如下所示:
_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记录类型的团队来说,这是一个不错的选择。
基于HTTP/HTTPS文件的验证方法
1. HTTP实际演示
基于文件的验证要求您在Web服务器上的指定路径放置一个特定的文件。然后CA会通过HTTP或HTTPS访问该文件,以确认您控制着托管该域名的服务器。
标准路径为: http://yourdomain.com/.well-known/pki-validation/fileauth.txt
CA会提供确切的文件名和内容。您在服务器上创建此文件,确保可以访问它,然后CA通过获取该文件进行验证。
关键实施要点:
- 该文件必须可以通过80端口(HTTP)或443端口(HTTPS)访问
- .well-known目录是RFC 8615中定义的标准位置
- 这是IP地址验证的必需项。如果您正在为IPv4或IPv6地址申请证书,HTTP验证通常是您唯一的选择
如果您可以直接访问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 CNAME | 15-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问题及快速修复方法
验证失败是常有的事。以下是您可能遇到的最常见错误以及如何快速解决它们。
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证书选项!






