
# 什么是CAA？
CAA（Certification Authority Authorization，证书颁发机构授权）是一项防止HTTPS证书错误颁发的安全措施，遵从IETF RFC6844。从2017年9月8日起，要求CA（Certification Authority，证书颁发）机构执行CAA强制性检查。
#### CAA标准
CAA标准是指域名所有者在其域名DNS记录的CAA字段中，授权指定的CA机构为其域名颁发证书。
全球约有上百个CA机构有权发放HTTPS证书，证明您网站的身份。CAA标准可以使网站将指定CA机构列入白名单，仅授权指定CA机构为网站的域名颁发证书，防止HTTPS证书错误颁发。设置CAA记录是提高网站安全性的方法之一。
CA机构在为域名签发证书时执行CAA强制性检查：
- 如果检查域名的DNS记录，发现未设置CAA字段，则为域名颁发证书。 这种情况下，任何CA机构均可为域名签发证书，存在HTTPS证书错误颁发的风险。
  
- 如果检查域名的DNS记录，在CAA字段发现获得授权，则为域名颁发证书。
- 如果检查域名的DNS记录，在CAA字段发现未获得授权，则拒绝为域名颁发证书，防止未授权HTTPS证书错误颁发。
 
#### CAA记录
CAA记录由一个\[flag\]标志字节和一个被称为属性的\[tag\]-\[value\]标（标签-值）对组成，可以将多个CAA字段添加到域名的DNS记录中。
表1CAA记录配置规则 
| 场景          | 说明                                                                                                                                        | 示例                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
|:---|:---|:---|
| 设置单域名CAA记录  | 0 issue "ca.example.com"                                                                                                                  | 该字段表示只有ca.example.com可以为域名domain.com颁发证书，未经授权的第三方CA机构申请域名domain.com的HTTP证书将被拒绝。                                                                                                                                                                                                                                                                                                                                                                                    |
| 设置单域名CAA记录  | 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解析记录是否生效？
CAA解析记录可以通过dig+trace命令查看域名是否生效以及具体的解析过程。如果操作系统没有自带dig命令，需要手动安装后才能使用。
命令格式为：dig \[类型\] \[域名\] +trace。
示例如下：
**dig caa www.example.com +trace**
