
# 设置CAA记录防止错误颁发HTTPS证书
#### 方案概述
**应用场景**
CAA（Certification Authority Authorization，证书颁发机构授权）是一项防止HTTPS证书错误颁发的安全措施，遵从IETF RFC6844。从2017年9月8日起，要求CA（Certification Authority，证书颁发）机构执行CAA强制性检查。
全球约有上百个CA机构有权发放HTTPS证书，证明您网站的身份。假如浏览器将某个CA机构列入黑名单，并宣称不再信任其颁发的HTTPS证书，当您访问到部署了这些HTTPS证书的网站时，会被提示HTTPS证书不受信任，如[图1]所示。
图1HTTPS证书错误颁发   
![](https://support.huaweicloud.com/bestpractice-dns/zh-cn_image_0000001970166024.png "点击放大")
CAA标准要求CA机构在为域名签发证书时执行CAA强制性检查：
- 如果检查域名的DNS解析记录，发现未设置CAA字段，则为该域名颁发证书。 这种情况下，任何CA机构均可为该域名签发证书，存在HTTPS证书错误颁发的风险。
  
- 如果检查域名的DNS解析记录，在CAA字段发现获得授权，则为该域名颁发证书。
- 如果检查域名的DNS解析记录，在CAA字段发现未获得授权，则拒绝为该域名颁发证书，防止未授权HTTPS证书错误颁发。
华为云云解析服务支持为公网域名设置CAA记录，您可以通过在管理控制台为域名添加CAA解析记录。
**方案优势**
为网站的域名添加CAA解析记录可以使网站将指定CA机构列入白名单，仅授权指定CA机构为网站的域名颁发证书，提高网络的安全性。
**约束和限制**
CAA记录集的格式为：\[flag\] \[tag\] \[value\]，由一个标志字节的\[flag\]和一个\[tag\]-\[value\]（标签-值）对组成。
配置原则：
- flag：认证机构限制标志，定义为0\~255无符号整型。常用取值为0。
- tag：仅支持大小写字母和数字0\~9，长度1\~15，常用取值：
  - issue：授权任何类型的域名证书
  
  - issuewild：授权通配符域名证书
  
  - iodef：指定违规申请证书通知策略
   

- value：域名或用于违规通知的电子邮箱或Web地址。其值取决于\[tag\]的值，必须加双引号。取值范围：字符串（仅包含字母、数字、空格、-#\*?\&_\~=:;.@+\^/!%），最长255字符。
不同应用场景下，设置CAA记录集的规则如[表1]所示。
 表1CAA记录配置规则 
| 场景          | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     | 示例                                                                                                                                                                                                            |
|:---|:---|:---|
| 设置单域名CAA记录  | 该字段表示只有ca.example.com可以为域名domain.com颁发证书，未经授权的第三方CA机构申请域名domain.com的HTTP证书将被拒绝。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | 0 issue "ca.example.com"                                                                                                                                                                                      |
| 设置单域名CAA记录  | 该字段表示拒绝任何CA机构为域名domain.com颁发证书。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | 0 issue ";"                                                                                                                                                                                                   |
| 设置发送警报通知    | 该字段用于当第三方尝试为一个未获得授权的域名申请证书时，通知CA机构向网站所有者发送警报邮件。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | 0 iodef "mailto:admin@domain.com"                                                                                                                                                                             |
| 设置发送警报通知    | 该字段用于记录尝试在其他CA申请HTTPS证书的行为。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            | 0 iodef "http://domain.com/log/" 0 iodef "https:// domain.com/log/"                                                                           |
| 设置颁发通配符域名证书 | 该字段用于将通配符证书的颁发权限指定CA机构ca.example.com。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | 0 issuewild "ca.example.com"                                                                                                                                                                                  |
| 综合配置样例      | 该字段表示域名domain.com： - 授权CA机构ca.abc.com颁发不限类型的证书。  - 授权CA机构ca.def.com颁发通配符证书。  - 禁止其他CA机构颁发证书。  - 当有违反设置规则的情况发生，CA机构发送通知邮件到admin@domain.com。   | 0 issue "ca.abc.com" 0 issuewild "ca.def.com" 0 iodef "mailto:admin@domain.com" |
   
#### 资源成本和规划
本节介绍最佳实践中资源规划情况，包含以下内容：
表2域名资源规划 
| 资源  | 公网域名       | 记录集类型 |
|:---|:---|:---|
| DNS | domain.com | CAA   |
   
表3资源和成本规划 
| 资源    | 资源名称                                                                      | 资源说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         | 数量 | 费用                                                                    |
|:---|:---|:---|:---|:---|
| 域名注册  | 域名                                                                        | 公网域名：domain.com                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              | 1  | 详细请参见[域名注册产品价格详情](https://www.huaweicloud.com/pricing.html#/domains)。 |
| 云解析服务 | 公网域名 记录集 | - 公网域名：domain.com  - 记录集类型：CAA 值： 0 issue "ca.abc.com" 0 iodef "mailto:admin@domain.com"    | 1  | 免费                                                                    |
   
#### 设置公网域名的CAA记录流程
为公网域名添加CAA记录集的流程如[图2]所示。
图2设置公网域名CAA记录   
![](https://support.huaweicloud.com/bestpractice-dns/zh-cn_image_0000001970325816.png)
#### 实施步骤
1. **创建公网域名**
   
   1. 进入[公网域名列表页面](https://console.huaweicloud.com/dns/?#/dns/publiczones)。
   
   2. 在公网域名页面，单击"创建公网域名"。
   
   3. 根据界面提示配置相关参数，参数说明如[表4]所示。
      图3创建公网域名   
      ![](https://support.huaweicloud.com/bestpractice-dns/zh-cn_image_0000002442093762.png "点击放大")
       表4创建公网域名参数说明 
      | 参数   | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              | 示例                                                                                          |
      |:---|:---|:---|
      | 域名   | 从域名注册商处购买的域名。 域名的格式请参见[域名格式与级别](https://support.huaweicloud.com/productdesc-dns/dns_pd_0009.html)。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              | domain.com                                                                                  |
      | 企业项目 | 公网域名关联的企业项目，用于将公网域名资源按照企业项目进行管理。 仅当用户使用的"账号类型"为"企业账号"时，显示该参数，且参数必选。 配置原则： - 如果不通过企业项目管理域名资源，则采用默认值"default"。  - 如果通过企业项目管理域名资源，则在下拉列表中选择已经创建的企业项目。 在设置该参数前，您需要完成[创建企业项目](https://support.huaweicloud.com/usermanual-em/zh-cn_topic_0108763964.html)。    | default                                                                                     |
      | 标签   | 可选参数。 域名的标识，包括键和值，每个域名可以创建20个标签。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | example_key1 example_value1 |
      | 描述   | 可选参数。 域名的描述信息。 长度不超过255个字符。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | This is a zone example.                                                                     |
         
      
   
   4. 单击"确定"。
   
   
   
   

2. **添加记录集**
   
   1. 在"公网域名"页面的域名列表中，单击待添加CAA记录集的域名domain.com。 系统进入domain.com的域名解析记录页面。
      
   
   2. 单击"添加记录集"。 系统进入"添加记录集"页面。
      
   
   3. 根据界面提示配置相关参数，参数说明如[表5]所示。
      图4添加CAA类型记录集   
      ![](https://support.huaweicloud.com/bestpractice-dns/zh-cn_image_0000002006765849.png "点击放大")
       表5添加CAA类型记录集参数说明 
      | 参数     | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                | 示例                                                                                                                     |
      |:---|:---|:---|
      | 记录类型   | 记录集的类型，此处为CAA类型。 添加记录集时，如果提示解析记录集已经存在，说明待添加的记录集与已有的记录集存在限制关系或者冲突。 详细内容请参见[为什么会提示解析记录集已经存在？](https://support.huaweicloud.com/dns_faq/dns_faq_016.html)。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            | CAA -- CA证书颁发机构授权校验                                                                                                    |
      | 主机记录   | 解析域名的前缀。 例如创建的域名为"domain.com"，其"主机记录"设置包括： - www：用于网站解析，表示解析的域名为"www.domain.com"。  - 空：用于网站解析，表示解析的域名为"domain.com"。 主机记录置为空，还可用于为空头域名"@"添加解析。   - abc：用于子域名解析，表示解析的域名为"domain.com"的子域名"abc.domain.com"。  - mail：用于邮箱解析，表示解析的域名为"mail.domain.com"。  - \*：用于泛解析，表示解析的域名为"\*.domain.com"，匹配"domain.com"的所有子域名。                                                                                                                                                                                                                                                                      | 置空                                                                                                                     |
      | 别名     | 用于是否将此记录集关联至云服务资源实例。 - 是：为此记录集关联云服务资源实例。  - 否：不为此记录集关联云服务资源实例。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | 否                                                                                                                      |
      | 别名地址   | "别名"参数设置选择"是"时，该项必选。 用于设置记录集关联的华为云服务资源实例。 记录集支持关联的华为云服务资源实例包括：企业门户、Web应用防火墙。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | -                                                                                                                      |
      | 线路类型   | 解析的线路类型。用于DNS服务器在解析域名时，根据访问者的来源，返回对应的服务器IP地址。 默认值为"全网默认"。 仅支持为公网域名的记录集配置此参数。 - 全网默认：默认线路类型，当未根据访问者来源设置解析线路时，系统会返回默认解析结果。  - 运营商线路解析：根据访问者所在运营商，设置解析线路。  - 地域解析：根据访问者所在地域，设置解析线路。  - 自定义线路：根据访问者所属IP网段。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | 全网默认                                                                                                                   |
      | TTL(秒) | 解析记录在本地DNS服务器的缓存时间，以秒为单位。 默认值为"300秒"。 取值范围：1\~2147483647 如果您的服务地址经常更换，建议TTL值设置相对小些，反之，建议设置相对大些。 更多TTL相关内容请参见[什么是TTL值？](https://support.huaweicloud.com/dns_faq/dns_faq_013.html)。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | 300                                                                                                                    |
      | 记录值    | 指定要授权的证书颁发机构，使其可以给域名或者子域名颁发证书。 最多可以输入50个不重复记录，多个记录之间以换行符分隔。 填写格式：\[flag\] \[tag\] \[value\] 配置规则： - flag：认证机构限制标志，定义为0\~255无符号整型。常用取值为0。  - tag：仅支持大小写字母和数字0\~9，长度1\~15，常用取值： - issue：授权任何类型的域名证书  - issuewild：授权通配符域名证书  - iodef：指定违规申请证书通知策略    - value：域名或用于违规通知的电子邮箱或Web地址。其值取决于\[tag\]的值，必须加双引号。取值范围：字符串（仅包含字母、数字、空格、-#\*?\&_\~=:;.@+\^/!%），最长255字符。   | 0 issue "ca.abc.com" 0 iodef "mailto:admin@domain.com" |
      | 权重     | 可选参数，返回解析记录的权重比例。默认值为1，取值范围：0\~1000。 仅支持为公网域名的记录集配置此参数。 当域名在同一解析线路中有多条相同类型的解析记录时，可以通过"权重"设置解析记录的响应比例。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              | 1                                                                                                                      |
      | 标签     | 可选参数，记录集的标识，包括键和值，每个记录集可以创建20个标签。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | example_key1 example_value1                            |
      | 描述     | 可选参数，对域名的描述。 长度不超过255个字符。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          | The description of the hostname.                                                                                       |
         
      
   
   4. 单击"确定"，完成CAA类型记录集的添加。
   
   
   
   
 
#### 验证CAA解析记录是否生效
CAA解析记录可以通过dig+trace命令查看域名是否生效以及具体的解析过程。如果操作系统没有自带dig命令，需要手动安装后才能使用。
命令格式为：dig \[类型\] \[域名\] +trace。
示例如下：
**dig caa www.domain.com +trace**
