一、CAA 的作用?
域名所有者通过设置 CAA 解析记录来授权指定的 CA 机构为其颁发 SSL 证书,同时 CA 机构根据规范要求,在颁发 SSL 证书时会强制性检查域名 CAA 记录,如果检查发现未获得授权,将拒绝为该域名颁发 SSL 证书,从而防止未授权的 SSL 证书错误颁发,规避安全风险。如果域名所有者没有为其域名设置 CAA 记录,那么任何 CA 机构都可以为其域名颁发证书。
二、为什么要设置 CAA ?
据权威部门统计,全球约有上百个证书颁发机构(CA)有权发放 SSL 证书,以证明你网站的身份,但是证书颁发机构由于某些原因,往往会被浏览器列入 “黑名单”,并被公开宣布将不再信任其签发的 SSL 证书。由于任何 CA 都可以为任何域名颁发证书,这使得 PKI 生态系统较为脆弱。因此,当你的网站部署了不被浏览器信任的证书颁发机构所颁发的证书,用户访问时,部分浏览器将提示 “HTTPS 证书不受信任”,影响你的业务正常使用。如下:
因此,为避免你不被错误地颁发证书,建议你为域名设置授信的 CAA 记录,若你需指定仅支持腾讯云 SSL 证书为其颁发,腾讯云不同品牌 CAA 记录值如下:
| 证书品牌 | 记录值 | |
| SecureSite | 0 issue "digicert.com" | 0 issuewild "digicert.com" |
| GeoTrust | 0 issue "digicert.com" | 0 issuewild "digicert.com" |
| TrustAsia | 0 issue "trust-provider.com" | 0 issuewild "trust-provider.com" |
| GlobalSign | 0 issue "globalsign.com" | 0 issuewild "globalsign.com" |
| WoTrus | 0 issue "wotrus.com" | 0 issuewild " wotrus.com" |
| DNSPod(国密标准(SM2)) | 0 issue "wotrus.com" | 0 issuewild " wotrus.com" |
注意:说明:
注意:0 issue表示只有该 CA 机构可以为特定域名颁发证书,0 issuewild表示只有该 CA 机构可以为特定域名颁发通配符证书。
三、CAA 记录格式说明
CAA 记录的格式为:[flag] [tag] [value],是由一个标志字节的 [flag] 和一个被称为属性的[tag]-[value](标签-值)对组成。你可以将多个 CAA 字段添加到域名的 DNS 解析记录中。
| 字段 | 说明 |
| flag | 可填写0或128,用于标识认证机构。通常情况下填0,表示如果颁发证书机构无法识别本条信息,就忽略。 |
| tag | 支持 issue、issuewild 和 iodef。issue:CA 授权单个证书颁发机构发布的任何类型域名证书。issuewild:CA 授权单个证书颁发机构发布主机名的通配符证书。iodef:CA 可以将违规的颁发记录 URL 发送给某个电子邮箱。 |
| value | CA 的域名或用于违规通知的电子邮箱。 |
四、添加 CAA 记录
注意:说明:
注意:以腾讯云免费证书为例,为域名添加对应 issue 和 issuewild 记录。
1. 登录 云解析 DNS 控制台,在左侧导航栏中选择权威解析,进入权威解析页面。
2. 在权威解析页面中,选择并单击需要添加 CAA 记录的域名,进入该域名的记录管理页面:
3. 在记录管理页面中,单击添加记录,填写以下记录信息。如下:
·主机记录:填写子域名。例如为 www.dnspod.cn 添加 CAA 记录,你在 “主机记录” 处填写 “www” 即可。如果想添加 dnspod.cn 的 CAA 记录,你在 “主机记录” 处选择 “@” 即可。
·记录类型:选择 “CAA”。
·线路类型:选择 “默认” 类型,否则会导致部分 CA 机构无法进行认证。
·记录值:分别 填写 0 issue "sectigo.com" 与 0 issuewild "sectigo.com"。
·权重:不填写,可忽略。
·MX 优先级:不填写,可忽略。
·TTL:缓存的生存时间,默认600秒。如需修改,请参见 TTL 如何填写?
4. 单击确定,完成添加。
五、检查 CAA 记录
可通过以下两种方式检查已添加的 CAA 记录:
六、dig 命令
dig 域名名称 CAA
返回值为空或包含 0 issuewild "sectigo.com" 和 0 issue "sectigo.com" 即为正常。如下:
七、DNS 诊断工具
前往 DNS 诊断工具,输入域名名称并选择 CAA 记录后单击检测,返回值为空或包含 0 issuewild "sectigo.com" 和 0 issue "sectigo.com" 即为正常。如下:
注意:说明:
注意:若出现检测失败或只有部分地区可以正常检测的情况,请检查域名 DNS 解析设置。