认证机构授权(CAA)记录让域名持有者声明,哪些证书颁发机构可以为该域名签发证书。只有当记录与真实续期路径一致、且操作者理解策略如何从父级名称继承时,它才有用。
检视当前策略
查询确切主机名及其父名称:
for name in www.example.test example.test test; do
printf '== %s\n' "$name"
dig +noall +answer CAA "$name"
done
叶子处空的应答不一定意味着没有适用策略。根据 DNS 规则,CAA 处理可能继续向上。诊断变更时使用权威应答,并与至少一个递归解析器比较。
匹配账户的签发者标识
记录使用如 issue 或 issuewild 等标签与一个签发者域值:
example.test. 3600 IN CAA 0 issue "letsencrypt.org"
该值是授权标识,不是证书里的显示名。在证书颁发机构的当前文档中确认它。通配符授权可能需要单独的 issuewild 策略。
在续期前编排 DNS 变更
在当前证书健康时添加或收紧 CAA。从整上一个 TTL 等待,查询权威与递归应答,并运行 ACME 客户端支持的暂存或续期测试。准备好回滚记录。
不要在过期事故期间添加限制性记录,除非签发者路径已验证。一条语法正确但错误的策略,会把自动续期变成硬失败。
观察签发失败
CAA 检查发生在签发时,而不是每次 HTTPS 请求。因此证书监控必须同时覆盖当前过期与续期尝试。把有效的 DNS 应答随 ACME 失败一起记录,而不是只记录一条笼统的授权错误。
来源
- RFC 8659 — DNS Certification Authority Authorization,CAA 查询与属性语义,已核验 2026-08-23。
- Let’s Encrypt: CAA,签发者标识与运维指引,已核验 2026-08-23。