Skip to content

DNSSEC 异常导致域名验证失败 ​

DNS 验证值已配置,但查询返回 SERVFAIL、验证器明确报告 DNSSEC 错误,或更换 DNS 服务商后突然无法签发,可进一步检查 DNSSEC。DNSSEC 异常也可能阻断 CAA 检查。排查时同时查看记录内容和验证器的信任链校验结果。

1. 判断是否与 DNSSEC 有关 ​

可以使用 Verisign DNSSEC Debugger 或 DNSViz 分析域名的 DNSSEC 链,也可用同一递归解析器对比查询(替换示例主机名):

sh
dig @1.1.1.1 _dnsauth.example.com TXT +dnssec
dig @1.1.1.1 _dnsauth.example.com TXT +dnssec +cdflag

第一条返回 SERVFAIL,第二条能返回结果,提示可能存在 DNSSEC 校验问题,应继续核对委派和签名。+cdflag 仅用于诊断,不能作为让 CA 跳过校验的解决方案。

两条均失败时,还要检查权威 DNS 是否可达。单次 SERVFAIL 也可能由超时或其他 DNS 故障造成。

DNSSEC 校验沿根、顶级域及逐级委派建立信任关系,不只是目标区的 DS 与 DNSKEY 匹配。常见问题还包括 RRSIG 缺失或过期,以及 NSEC/NSEC3 无数据、无 DS 的否定证明异常。没有 DS 本身不一定错误,未签名委派仍需正确的父区无 DS 证明;某项显示 Insecure 不能单独覆盖验证器报告的其他错误。建议通过 DNSViz 查看完整链路,依据 DNSSEC 验证规则定位。

2. 使用 DNSSEC Debugger 查看结果 ​

  1. 打开 DNSSEC Debugger,在 Domain Name 中填写待检查的域名,按回车开始检测。例如检查 app.example.com 时,填写这个完整名称。
  2. 从上到下查看根区(.)、顶级域(如 com)及目标区域的检查结果,定位出现错误的层级。
  3. 点击 more(+) 展开细节,将鼠标移到黄色或红色图标上查看处理提示;再检查报告中的各台权威服务器是否都能正常应答。

正常:密钥与签名验证通过 ​

对于已启用 DNSSEC 的区域,重点看下面两类绿色检查项:

报告文字含义
DS=… verifies DNSKEY=…父区的 DS 与该区域的 DNSKEY 匹配,信任关系已连接。
RRSIG=… verifies the … RRset对应记录组的签名验证通过。RRset 指同名、同类型的一组 DNS 记录。

下图为 example.com 的实际检测示例。根区、com 和目标区域的密钥与签名检查均为绿色,目标记录的签名验证通过。

DNSSEC Debugger 正常示例:example.com 的 DS、DNSKEY 和记录签名验证通过

图:公开域名的检测结果示例,记录与密钥编号以实际报告为准。

未启用 DNSSEC:按区域配置判断 ​

如果域名计划使用普通未签名 DNS,父区提供有效的无 DS 证明属于正常委派状态,工具可能将这段链路显示为 Insecure 或未签名。若域名计划启用 DNSSEC,则需继续确认 DS 已在父区发布、DNSKEY 与签名已在对应区域生效。

异常:定位红色错误与黄色提示 ​

报告文字或现象含义与处理
None of the … DNSKEY records could be validated by any of the … DS records父区 DS 无法验证当前 DNSKEY。请注册商与 DNS 服务商核对 DS 摘要及当前密钥,重点检查 DNS 迁移或密钥轮换。
The DNSKEY RRset was not signed by any trusted keysDNSKEY 记录组未通过受信密钥的签名验证,需结合前面的 DS/DNSKEY 错误检查信任链。
RRSIG=… is expired检测到过期签名。核对对应记录组是否还有可用签名,并由 DNS 服务商检查签名更新。
权威服务器查询超时或没有取得所需记录检查该服务器的网络可达性、委派与区域配置,再重新检测。

下图使用公开故障测试域名 dnssec-failed.org 展示异常:目标区域出现 DS 与 DNSKEY 验证失败、过期签名及受信密钥验证错误,可从这些位置开始排查。

DNSSEC Debugger 异常示例:dnssec-failed.org 的 DS 与 DNSKEY 验证失败,并出现过期签名提示

绿色图标表示该检查项通过;黄色提示需展开查看具体原因,红色错误需定位处理。阅读完整链路及各权威服务器结果后,再判断目标名称的 DNSSEC 状态。图中部分记录签名检查为绿色,同时目标区域存在红色信任链错误,处理时应优先核对该区域的 DS 与 DNSKEY。

DNSSEC Debugger 的报告用于定位 DNSSEC 与解析问题。报告中的记录类型(如 A)说明本次检查对象;订单验证还需查询对应的 TXT/CNAME,并核对当前验证值及业务域名的 CAA 授权。

3. 核对 DS 与 DNSKEY ​

先确认验证名称所在的实际权威区域及委派边界,再查询区域顶点;不要直接把 _dnsauth 主机名当作 DNSKEY 所在位置。以下以区域 example.com 为例,DS 存放在父区,DNSKEY 存放在该区域:

sh
dig @1.1.1.1 example.com DS +dnssec
dig @1.1.1.1 example.com DNSKEY +dnssec +cdflag

重点检查:父区 DS 是否与当前 DNS 服务商的密钥匹配;权威区域是否提供有效 DNSKEY/RRSIG;是否有更换 DNS 服务商后遗留的 DS 或过期签名。查询取得记录后,继续核对摘要与签名有效期。

使用 DNSSEC Debugger、DNSViz 或服务商工具核对 DS 摘要、DNSKEY 及签名有效期;上述命令用于收集记录,信任链结果可结合工具报告查看。

4. 修复并复测 ​

联系域名注册商与 DNS 服务商,协调修正 DS、密钥或签名。若决定停用 DNSSEC,应按服务商流程处理父区 DS 及缓存,再停用签名,避免仅关闭 DNS 侧签名而留下 DS。

迁移或停用时,还需考虑父区 DS、旧 DNSKEY/RRSIG 等缓存;恢复时间取决于相关 TTL 和服务商的迁移流程。

修复后用正常校验方式重新查询,确认 DNS 状态及验证器结果正常、验证记录匹配本订单当前 token、业务域名的有效 CAA 满足签发授权,再触发证书验证。查询仍失败时,保留错误信息并继续排查。

参考:Verisign DNSSEC Debugger · DNSViz · Cloudflare DNSSEC 排障 · DNSSEC 配置与迁移注意事项。