DNS 验证
DNS-01 验证要求在域名下添加 TXT 记录以证明所有权。本文说明记录的格式、主域名与泛域名共用记录名的原因、预检查的判定方式,以及记录迟迟不生效时的排查顺序。
DNS-01 验证要求申请人在域名下添加一条指定的 TXT 记录,以此证明对该域名拥有控制权。这是本站采用的唯一验证方式,也是签发泛域名证书所必需的方式。
记录的格式
| 字段 | 值 |
|---|---|
| 记录类型 | TXT |
| 主机记录 | _acme-challenge(部分服务商要求填写完整的 _acme-challenge.example.com) |
| 记录值 | 申请页面上给出的字符串,需完整复制 |
| TTL | 保持默认即可 |
记录值必须完整复制,不要添加引号,也不要在首尾留下空格。从页面复制时请使用复制按钮,手工选择文本容易漏掉末尾字符。
同时签发泛域名时需要两条记录
当一张证书同时包含 example.com 与 *.example.com 时,CA 会为两个域名各下发一个验证值,而两者对应的记录名是同一个 _acme-challenge.example.com。
因此需要添加两条主机记录相同、记录值不同的 TXT 记录,两条都必须存在。
这是本环节最常见的失败原因。部分 DNS 控制台在添加同名记录时会提示冲突,或直接用新记录覆盖旧记录。若控制台不允许同名 TXT 记录共存,请确认是否有「添加记录」以外的入口,或联系服务商确认该域名类型是否支持多值 TXT 记录。
预检查的判定方式
点击「检查 DNS 记录」后,系统不会查询公共 DNS 缓存,而是先定位该域名的权威域名服务器,再逐台直接查询 TXT 记录。
这样做的原因是:公共解析器可能返回缓存的旧结果,据此判断「已生效」会导致提交给 CA 后再次失败,而 CA 的失败无法复用,只能重新发起申请。
检查未通过时,页面会说明是哪一台权威服务器返回了什么内容。这一信息具有实际的排查价值:
| 返回内容 | 通常原因 |
|---|---|
| 未返回任何 TXT 记录 | 记录尚未生效,或添加在了错误的域名下 |
| 返回的值与预期不符 | 记录值复制不完整,或修改了旧记录而非新增记录 |
| 只返回了一个值,但需要两个 | 泛域名所需的第二条记录缺失或被覆盖 |
| 无法定位权威服务器 | 域名尚未完成注册,或 NS 记录配置有误 |
记录迟迟不生效时的排查顺序
请按以下顺序确认:
- 确认记录添加在正确的域名下。 若申请的是
example.com,记录应添加在example.com的解析中,而非某个子域名下。 - 确认主机记录的填写格式。 不同服务商的要求不一致:部分只需填写
_acme-challenge,部分要求填写完整的_acme-challenge.example.com。填写错误会生成_acme-challenge.example.com.example.com这样的记录名。 - 确认域名当前的 NS 指向。 若域名近期更换过 DNS 服务商,记录可能添加在了已不再生效的那一侧。
- 确认是否存在 CNAME 冲突。 若
_acme-challenge已存在 CNAME 记录,同名的 TXT 记录不会生效。 - 使用命令行直接向权威服务器查询。 这可以排除本机与本地网络缓存的干扰:
# 先查出权威服务器
dig +short NS example.com
# 再直接向其中一台查询 TXT 记录
dig +short TXT _acme-challenge.example.com @ns1.example-dns.com预期应返回一个值(仅主域名)或两个值(同时包含泛域名)。
验证通过之后
预检查通过后,系统会将订单提交给 CA。CA 会独立再验证一次,这次验证由 CA 自行发起,本站无法干预,耗时通常在数分钟以内。
在证书签发之前,请勿删除这些 TXT 记录。签发完成后即可删除,下次续期时系统会下发新的记录值。
若希望免去每次续期时手工添加记录的步骤,本站提供 DNS 委派:将 _acme-challenge.example.com 通过 CNAME 指向本站,此后每次验证所需的 TXT 值由本站写入,这条 CNAME 添加一次即可。
也可以将它指向自行搭建的验证域名,此后自己维护该域名下的 TXT 记录;此方式对本站的预检查同样有效。