← 返回题目列表

DNS CAA 记录是什么?它如何限制哪些 CA 可以签发域名证书?

中等 第 24 / 27 题 更新于 2026/08/02
DNSHTTPS证书

简化版

CAA 记录用于声明哪些 CA 有权为某个域名签发 TLS/HTTPS 证书。

例如域名配置 CAA 0 issue "letsencrypt.org",表示只允许 Let’s Encrypt 为该域名签发普通证书。CA 在签发证书前需要查询 CAA,如果发现自己不在允许列表中,就不应该签发。

它不能替代证书透明度、证书吊销和私钥保护,但能减少误签风险,是域名证书治理里的防护层。

详细版

示例记录:

example.com. 3600 IN CAA 0 issue "letsencrypt.org"
example.com. 3600 IN CAA 0 iodef "mailto:security@example.com"

常见 tag:

  • issue:允许签发普通证书的 CA。
  • issuewild:允许签发通配符证书的 CA。
  • iodef:出现违规签发请求时的报告地址。

CA 签发证书前会检查域名及父域的 CAA 策略。

如果没有 CAA,通常表示不限制 CA;如果配置了 CAA,就要按记录约束执行。

面试里可以把 CAA 说成“域名所有者给 CA 设置的签发白名单”。

完整版教学

1. 先说明 CAA 解决什么问题

HTTPS 证书信任依赖 CA 体系。

理论上,被浏览器信任的 CA 都可能为你的域名签发证书。

如果某个 CA 误签或流程被滥用,就可能出现非授权证书。

CAA 的作用是让域名所有者在 DNS 中声明:

哪些 CA 可以给我签证书

CAA 不是加密 DNS 查询,而是约束证书签发方的授权声明。

2. CAA 记录长什么样

一条 CAA 记录通常包含 flag、tag、value。

示例:

example.com. 3600 IN CAA 0 issue "digicert.com"
example.com. 3600 IN CAA 0 issuewild "letsencrypt.org"
example.com. 3600 IN CAA 0 iodef "mailto:pki@example.com"

含义是:

  • 普通证书允许 DigiCert 签发。
  • 通配符证书允许 Let’s Encrypt 签发。
  • 违规或异常情况可发送报告到指定邮箱。

3. issue 和 issuewild 的区别

issue 控制普通证书。

issuewild 控制通配符证书。

tag控制对象示例
issue普通域名证书www.example.com
issuewild通配符证书*.example.com
iodef报告地址mailto:security@example.com

如果只配置 issue,通配符签发如何处理要看具体规则和 CA 检查逻辑。

线上治理时最好把普通证书和通配符证书策略都写清楚。

4. CA 如何使用 CAA

CA 在签发证书前会查询相关域名的 CAA。

如果 api.example.com 没有 CAA,可能继续向父域 example.com 查找。

如果查到:

example.com. IN CAA 0 issue "letsencrypt.org"

而当前申请证书的 CA 不是 Let’s Encrypt,它就应该拒绝签发。

这让域名所有者可以减少“任何受信 CA 都能签”的暴露面。

5. CAA 的能力边界

CAA 是签发前约束,不是签发后检测。

能力是否具备说明
限制授权 CACA 签发前应查询
加密 DNS 响应不是 DoH/DoT
替代 CT 监控CT 用于公开审计
防止私钥泄露私钥管理仍要做好
立刻撤销旧证书吊销需要 OCSP/CRL

所以 CAA 更适合放在证书治理体系里,而不是单独当万能安全方案。

6. 工程实践注意点

配置 CAA 前要先梳理所有签发来源。

例如:

  • 主站证书由某个云厂商签发。
  • CDN 边缘证书由 CDN 平台代签。
  • 内部服务使用企业 CA。
  • 测试域名使用 Let’s Encrypt。

如果漏掉某个合法 CA,自动续期可能失败。

配置后还要监控证书续期任务,避免证书到期才发现 CAA 阻断。

7. 常见误区与追问

  • 误区:CAA 能阻止所有非法证书使用。 它约束 CA 签发,不能阻止已泄露私钥或已签发证书被使用。
  • 误区:没有 CAA 表示不能签证书。 没有 CAA 通常表示不做 CA 限制。
  • 误区:CAA 和 DNSSEC 是一回事。 CAA 是证书签发授权,DNSSEC 是 DNS 数据完整性验证。
  • 追问:为什么配置 CAA 后证书续期失败? 可能自动签发使用的 CA 不在 CAA 白名单里。
  • 追问:issuewild 有什么用? 它专门限制通配符证书的签发 CA。
  • 追问:CAA 和 CT 如何配合? CAA 限制签发来源,CT 监控实际签发结果。

8. 加强记忆

CAA 记成“证书签发白名单”。

DNS 里写清楚谁能签,CA 签之前先查表。