dnssec 是需服务器签名、客户端验证、信任锚配置和持续维护的闭环机制;windows server 2012 r2 起原生支持,但须各环节协同生效,否则签名无效。
dnssec 不是打开就完事的功能,它是一套需要服务器签名、客户端验证、信任锚配置和持续维护的闭环机制。windows server 2012 r2 起已原生支持,但必须各环节协同生效,否则签名形同虚设。
权威服务器端:完成区域签名与密钥管理
在 DNS 管理器中右键目标正向查找区域(如 corp.internal)→「属性」→「DNSSEC」选项卡→点击「签名此区域」。系统将自动生成 ZSK(区域签名密钥)和 KSK(密钥签名密钥),默认使用 RSA-SHA256。
- 反向查找区域(如 10.in-addr.arpa)需单独签名,否则 PTR 记录无法验证
- SOA 记录中的最小 TTL 建议 ≥3600 秒,避免签名过期后缓存未刷新导致验证失败
- ZSK 每 90 天轮换一次,KSK 可每年轮换;轮换时须保留旧密钥直至所有缓存自然过期
信任链构建:私有域名需手动配置信任锚
企业内部多用私有后缀(如 ad.corp),无上级注册商可提交 DS 记录,因此必须在客户端或递归服务器上直接部署信任锚。
通过 handsfree-windows CLI控制 Windows 本机应用 (UIA) 和浏览器 (Playwright) 的引导技能,用于自动化或测试桌面应用。
- 使用 PowerShell 命令导入信任锚:Add-DnsServerTrustAnchor -Name "ad.corp" -Key "257 3 14 AQPS..."
- 若域名为公有后缀子域(如 corp.example.com),则需向 example.com 的 DNS 管理员提交本区域 KSK 对应的 DS 记录
- 信任锚更新后,务必同步到所有参与验证的 DNS 服务器
客户端与递归服务器:启用验证并确保时间精准
仅服务器签名而客户端不验证,等于没开 DNSSEC。验证必须端到端打通。
- 域内 Windows 客户端执行:Set-DnsClientGlobalSetting -EnableDnsSecValidation $true
- 若使用 Windows DNS 作为内部递归服务器,需在该服务器「属性」→「高级」中勾选「启用 DNSSEC 验证」
- 验证是否生效:运行 Resolve-DnsName corp.internal -DnsOnly -DnssecOk,返回中 IsAuthenticated 为 True 且含 Secured 字段才表示链路验证成功
- 系统时间偏差超过 5 分钟会导致签名验签失败,所有设备必须通过域控 NTP 精确同步
策略固化:用 NRPT 强制关键命名空间验证
名称解析策略表(NRPT)可按命名空间精细化控制 DNSSEC 行为,比全局开关更可靠、更安全。
- 通过组策略编辑器配置 NRPT 规则,选择「后缀」类型,填入 corp.internal 等私有域名
- 在规则中勾选「要求 DNSSEC 验证」,并指定对应的信任锚(如已导入的 DNSKEY)
- 策略优先级遵循 GPO 链顺序,子命名空间规则会覆盖父命名空间规则
- 建议对所有内部业务域名(如 app.corp.internal、dc.corp.internal)单独配置 NRPT 条目










