首页/网络/协议速查/CAA 记录(证书颁发授权)
DNS 与域名解析60 条

CAA 记录(证书颁发授权)

限制哪些 CA 可以为你的域名签发证书:符合规范的 CA 签发前必须检查 CAA,是多 CA 时代的护栏。

协议速查网络更新于 2026-10-13

CAA 是域名的签发放行名单

CAA(证书颁发机构授权)记录用来限制哪些 CA 可以为某个域名签发证书:CA 在签发前必须先查询该域名的 CAA,命中白名单之外就不得签发。它解决的是多 CA 时代的护栏问题——域名所有者不必监控上百家 CA,只要在 DNS 里声明授权范围即可。

基本信息

记录类型CAA,类型值为 257
结构flags 加 tag 加 value,如 0 issue 某 CA 域名
规范RFC 8659(替代 RFC 6844)
查找规则未在子域配置时沿域名树向上查找,可能在父域找到已有策略
未配置时任何合规 CA 都可签发,签发的证书会出现在透明度日志中

常用 tag

tag作用示例
issue允许签发普通证书的 CA0 issue 某 CA 域名
issuewild允许签发通配符证书的 CA0 issuewild 分号表示禁止
iodef违规签发时的报告邮箱或地址0 iodef mailto 安全邮箱
critt(旧)曾在草案中定义的严重标记现已不再使用

查询与配置

查询与配置
dig +short example.com CAA            # 查询当前策略
dig +short www.example.com CAA        # 子域未配置时会看到向上继承的结果
# 典型记录:
# 0 issue "letsencrypt.org"           # 只允许该 CA 签发普通证书
# 0 issuewild ";"                     # 禁止任何通配符签发
# 0 iodef "mailto:security@example.com"  # 违规签发的通知地址

典型使用场景

  • 收紧签发来源:只授权当前使用的 CA,减少误签风险
  • 禁止通配符证书:环境里从不用通配符时用 issuewild 分号彻底关掉
  • 接收违规签发通知:配置 iodef 让异常签发可被发现
  • 迁移 CA 时核对策略:换签发方前先更新 CAA,否则签发会被拒绝
只写 issue 不写 issuewild 时通配符签发仍可能被允许:规范允许这类情况回退到 issue 判断,要真正禁掉通配符就得显式写 issuewild 加一个分号。
CAA 是约束合规 CA 的机制,不是技术强制:不守规矩的 CA 仍可能签发,但会被透明度日志与浏览器生态追责,同时 iodef 配置能让违规行为更快暴露。
修改 CAA 后要等缓存的 TTL 过期才会被 CA 的验证节点看到:计划更换签发方时应提前一天以上改好记录,避免申请被拒后还要等缓存失效。

易错点

  • 只写 issue 不写 issuewild:通配符证书仍可能被允许签发,想禁就必须显式写 issuewild 加分号
  • CAA 记录位置写错:证书针对的是顶点域名却把记录配在子域,CA 检查不到等于没配
  • 换 CA 时忘记更新 CAA:签发请求会被直接拒绝,表现为「申请证书失败但看不出原因」
  • 把 CAA 当作绝对防护:它依赖 CA 自愿遵守,真正的异常签发监控还要靠透明度日志巡检

数据来源与参考

  • RFC 8659 CAA
  • Let's Encrypt 文档(CAA 检查说明)

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌