CAA 记录(Certification Authority Authorization)是一种 DNS 资源记录,用于指定哪些证书颁发机构有权为你的域名签发 SSL/TLS 证书,可防止证书被误签或恶意签发,是提升网站 HTTPS 安全性的低成本手段。

| 类型 | DNS 资源记录 |
| 英文全称 | Certification Authority Authorization |
| 制定组织 | IETF |
| 相关标准 | RFC 8659(取代 RFC 6844) |
| 主要用途 | 限制可为域名签发证书的 CA |
| 官网 | datatracker.ietf.org |
CAA 记录(Certification Authority Authorization,证书颁发机构授权记录)是一种 DNS 资源记录,用于声明哪些证书颁发机构(CA)有权为某个域名签发 SSL/TLS 证书。
网站启用 HTTPS 需要向证书颁发机构申请证书。在没有 CAA 记录的情况下,任何一家受信任的 CA 理论上都可以为你的域名签发证书——一旦某家 CA 被攻击者欺骗或流程出错,就可能签发出「合法但不属于你」的证书,进而被用于中间人攻击。CAA 记录正是为堵住这个口子而生:域名所有者在 DNS 中写明「只允许某几家 CA 为我签发证书」,其他 CA 收到申请时必须拒绝。
CAA 由互联网工程任务组(IETF)制定标准,最初见于 RFC 6844,后由 RFC 8659 取代。自 2017 年起,CA/浏览器论坛要求所有公共 CA 在签发证书前必须检查域名的 CAA 记录,这项机制因此具有了行业强制力,而不只是建议。
需要注意,未设置 CAA 记录并不影响网站正常使用 HTTPS,只是意味着不做任何限制;设置了 CAA,则形成一道额外的防线。
一条 CAA 记录由标志位(flag)、标签(tag)和值(value)组成,例如 example.com. CAA 0 issue "letsencrypt.org" 表示只允许 Let's Encrypt 为该域名签发证书。常用标签有:
标志位一般填 0;填 128 表示「关键」,CA 若不理解该标签则必须拒绝签发。
在域名的 DNS 解析服务商控制台添加即可,主流服务商(如 Cloudflare、DNSPod、阿里云 DNS 等)大多已支持 CAA 记录类型。设置前先确认自己实际使用的 CA(如 Let's Encrypt、ZeroSSL、DigiCert 等)并把它们都列入,否则续期或签发新证书时会被拒绝。子域名默认继承上级域名的 CAA 设置,也可以单独为子域名配置。
问:不设置 CAA 记录,网站还能正常用 HTTPS 吗?答:完全可以。CAA 是可选的加固手段,不设置只是表示不限制签发,任何受信任的 CA 都能为你的域名签发证书。
问:设置 CAA 会影响已经签发的证书吗?答:不会。CAA 只在 CA 签发新证书时检查,已有证书在有效期内不受影响;但续期视同重新签发,所用 CA 必须在允许列表中。
问:CAA 记录和 TXT 记录有什么区别?答:两者都是 DNS 记录,但 TXT 是通用文本记录,常用于域名所有权验证和邮件防伪;CAA 是专用记录类型,语义明确且 CA 必须强制检查,不能用 TXT 代替。

| 类型 | DNS 资源记录 |
| 英文全称 | Certification Authority Authorization |
| 制定组织 | IETF |
| 相关标准 | RFC 8659(取代 RFC 6844) |
| 主要用途 | 限制可为域名签发证书的 CA |
| 官网 | datatracker.ietf.org |
登录 后参与讨论
暂无讨论,来发表第一条评论吧