CAA 指南

CAA(Certification Authority Authorization,证书颁发机构授权)是一项防止 HTTPS 证书错误颁发的安全措施,遵从 IETF RFC6844。CA 浏览器论坛投票通过的187号提案要求,从2017年9月8日起,CA 机构执行 CAA 强制性检查。

CAA 标准

CAA 标准是指域名所有者在其域名 DNS 记录的 CAA 字段中,授权指定的 CA 机构为其域名颁发证书。 全球约有上百个 CA 机构有权发放 HTTPS 证书,证明您网站的身份。但部分证书颁发机构由于某些原因,往往会被浏览器列入”黑名单”,并被公开宣布将不再信任其签发的 HTTPS 证书。CAA 标准可以使网站将指定 CA 机构列入白名单,仅授权指定 CA 机构为网站的域名颁发证书,防止 HTTPS 证书错误颁发。设置 CAA 记录是提高网站安全性的方法之一。

CA 机构在为域名签发证书时执行 CAA 强制性检查:

  • 如果检查域名的 DNS 记录,发现未设置 CAA 字段,则为该域名颁发证书。这种情况下,任何 CA 机构均可为该域名签发证书,存在HTTPS证书错误颁发的风险。
  • 如果检查域名的 DNS 记录,在 CAA 字段发现获得授权,则为该域名颁发证书。
  • 如果检查域名的 DNS 记录,在 CAA 字段发现未获得授权,则拒绝为该域名颁发证书,防止未授权 HTTPS 证书错误颁发。
  • 为域名颁发证书时,仅检查域名本身的 CAA 字段,不受主域 CAA 字段的授权影响。

CAA 记录格式

CAA记录的格式为:[flag] [tag] [value],是由一个标志字节的 [flag] 和一个被称为属性的[tag]-[value](标签-值)对组成。您可以将多个 CAA 字段添加到域名的DNS记录中。

字段说明

字段 说明
flag 0-255之间的无符号整数,用于标志认证机构。通常情况下填0,表示如果颁发证书机构无法识别本条信息,就忽略。
tag 支持 issue、issuewild 和 iodef。
issue:CA 授权单个证书颁发机构发布的 任何类型 域名证书。
issuewild:CA授权单个证书颁发机构发布主机名的 通配符 证书。
iodef:CA可以将违规的颁发记录URL发送给某个电子邮箱。
value CA的域名或用于违规通知的电子邮箱。

配置样例

目的 样例 描述
设置单域名CAA记录 0 issue “ca.example.com” 表示仅有ca.example.com可以为域名domain.com颁发证书,未经授权的第三方CA机构申请域名domain.com的HTTP证书将被拒绝。
0 issue “;” 表示拒绝任何CA机构为域名domain.com颁发证书。
设置发送警报通知 0 iodef “mailto:admin@domain.com” 表示当第三方尝试为一个未获得授权的域名申请证书时,通知CA机构向网站所有者发送警报邮件。
0 iodef “http:// domain.com/log/”
0 iodef “https:// domain.com/log/”
该字段用于记录尝试在其他CA申请HTTPS证书的行为。
设置颁发通配符域名证书 0 issuewild “ca.example.com” 该字段用于将通配符证书的颁发权限指定CA机构ca.example.com。
综合配置样例 0 issue “ca.abc.com”
0 issuewild “ca.def.com”
0 iodef “mailto:admin@domain.com”
该字段表示域名domain.com:
- 授权CA机构ca.abc.com颁发不限类型的证书。
- 授权CA机构ca.def.com颁发通配符证书。
- 禁止其他CA机构颁发证书。
- 当有违反设置规则的情况发生,CA机构发送通知邮件到admin@domain.com。

CAA 配置步骤

  1. 复制 Certcloud 平台的CAA检测记录值

image.png

  1. 登录异常域名的托管商平台,找到对应主域的记录添加入口;

image.png

  1. 添加解析记录,提交并等待解析生效

image.png

  1. 返回Certcloud平台, 确保异常域名的CAA记录都已配置完成, 点击“重新检测”;

image.png

  1. 看到页面提示检测通过即可。

image.png

CAA 记录查看

可通过 dig 域名 记录类型 命令来查询CAA记录解析情况

image.png

May 24, 2023