piapia123
zh

DNSSEC 配置检测

网络

这个工具会联网查询:输入会发往第三方服务,不经过本站服务器

填入域名后点「查询」。结果只在你自己的浏览器里显示。

DNSSEC 最常见的坏法不是「没配」,而是只配了一半 —— 而这种半成品不会有任何提示,域名要么悄悄不被校验,要么直接解析失败。这个工具把两半都查出来并互相比对:父域登记的 DS,与区域自己发布的 DNSKEY。 ⚠️ 判断的依据是 key tag。 DS 里存着一个 key tag,它必须等于某条 DNSKEY 按 RFC 4034 算出来的值。工具会逐条算出 DNSKEY 的 key tag 再与 DS 比对,所以能区分出「配好了」与「换了密钥却忘了在注册商那边更新 DS」—— 后者只显示两条记录是看不出来的。 ⚠️ 查的是区域顶点,不是你输入的那个名字。 DNSSEC 签名只做在区域顶点上(`example.com`,不是 `www.example.com`)。你填子域名时工具会自动归到顶点并说明,否则会对一个明明签了名的域名报「未启用」。 ⚠️ 这个工具会联网。 查询由你的浏览器直接发往阿里云或腾讯的公共 DNS 服务(DNS over HTTPS),域名不经过本站服务器。想单独看记录内容可以用 DNS 记录查询。 ⚠️ 它检查的是「配置对不对」,不是「签名有效」 —— 后者需要拿公钥去验签,那是解析器干的活。工具会显示解析器返回的 AD 位作为旁证,但那不等于完整的验证。

功能

  • 比对父域的 DS 与区域的 DNSKEY,给出五种互不相同的判定
  • 按 RFC 4034 从公钥算出 DNSKEY 的 key tag,与 DS 里的值逐个比对
  • 区分五种状态:已启用、未启用、区域缺 DNSKEY、父域缺 DS、key tag 对不上
  • 把「未生效」(签名白做)与「配置缺失」(域名正在打不开)分成两条不同的说明
  • DS / DNSKEY 字段全部拆开:算法号解成名字、KSK 与 ZSK 分开标出、公钥原样给出
  • 自动归到区域顶点查询,并说明做了这一步
  • 显示解析器的 AD 位,作为「链已被校验」的旁证
  • 可切换 DNS 线路,主线路无响应时自动切备用线路

使用方法

  1. 填入域名 —— 填子域名也可以,会自动归到区域顶点
  2. 点「检测」
  3. 看判定结果,再往下看 DS 与 DNSKEY 的明细
  4. 若判定异常,按说明去注册商或 DNS 服务商那边补齐另一半

常见问题

为什么我填 www.example.com,它却去查 example.com?
DNSSEC 的签名与密钥都只存在于区域顶点上,也就是 `example.com` 那一个名字。`www` 那里既没有 DS 也没有 DNSKEY。照输入去查会得到一个「未启用」的结论,而那个结论是错的 —— 所以工具自动归到顶点,并在结果里把这件事写出来。
判定说「未生效:父域没有 DS」,是什么意思?
意思是你的 DNS 服务商那边开了 DNSSEC、区域也发布了 DNSKEY,但注册商那边没有登记 DS 记录。解析器是从父域(对 `example.com` 来说是 `.com`)拿 DS 才知道该不该校验的,没有 DS 就等于没人告诉它 —— 签名白做。要去你的域名注册商那里把 DS 记录填上,值可以从 DNS 服务商的控制台拿到。
「配置缺失:区域没有 DNSKEY」会让网站打不开吗?
会。这种情况下解析器认为该域名应该有签名,却拿不到公钥,只能返回 SERVFAIL —— 域名表现得像宕机。它和「未启用 DNSSEC」是完全不同的两件事:前者要尽快修,后者什么都不用做。
key tag 是什么?为什么要算它?
key tag 是 DNSKEY 的一个 16 位校验和(RFC 4034 附录 B),作用相当于密钥的短编号 —— 让 DS 能指明它对应的是哪一条 DNSKEY。工具从公钥现算这个值再与 DS 里的比,是为了发现「换了密钥但 DS 没更新」这种光看记录发现不了的问题。
这个检测能替代 DNSSEC 验证器吗?
不能,而且这不是它的目标。它检查的是配置是否自洽(DS 与 DNSKEY 对不对得上、两边是否都配了),不验证签名本身 —— 验证签名要拿公钥去验 RRSIG,那是解析器的工作。所以判定说「已启用」时,链路上仍可能有别的问题(比如签名过期)。

相关工具