设置CAA记录防止错误颁发HTTPS证书
方案概述
应用场景
CAA(Certification Authority Authorization,证书颁发机构授权)是一项防止HTTPS证书错误颁发的安全措施,遵从IETF RFC6844。从2017年9月8日起,要求CA(Certification Authority,证书颁发)机构执行CAA强制性检查。
全球约有上百个CA机构有权发放HTTPS证书,证明您网站的身份。假如浏览器将某个CA机构列入黑名单,并宣称不再信任其颁发的HTTPS证书,当您访问到部署了这些HTTPS证书的网站时,会被提示HTTPS证书不受信任,如图1所示。
CAA标准要求CA机构在为域名签发证书时执行CAA强制性检查:
- 如果检查域名的DNS解析记录,发现未设置CAA字段,则为该域名颁发证书。
- 如果检查域名的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记录 |
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:
|
资源成本和规划
本节介绍最佳实践中资源规划情况,包含以下内容:
资源 |
公网域名 |
记录集类型 |
---|---|---|
DNS |
domain.com |
CAA |
实施步骤
- 创建公网域名
- 进入公网域名列表页面。
- 在公网域名页面,单击“创建公网域名”。
- 根据界面提示配置相关参数,参数说明如表4所示。
表4 创建公网域名参数说明 参数
参数说明
取值样例
域名
从域名注册商处获得的授权域名。
支持添加主域名及主域名的子域名,即最多支持添加二级域名,例如:- domain.com的子域名abc.domain.com
- domain.com.cn的子域名abc.domain.com.cn。
域名的格式请参见域名格式与级别。
domain.com
邮箱
可选参数。
管理该公网域名的管理员邮箱。建议用户使用保留邮箱“HOSTMASTER@域名”作为此管理员邮箱。
更多关于邮箱的信息,请参见SOA记录中的Email格式为什么变化了?。
-
标签
可选参数。
域名的标识,包括键和值,每个域名可以创建10个标签。
键和值的命名规则请参见表5。
说明:如您的组织已经设定云解析服务的相关标签策略,则需按照标签策略规则为域名添加标签。标签如果不符合标签策略的规则,则可能会导致域名创建失败,请联系组织管理员了解标签策略详情。
example_key1
example_value1
描述
可选参数。
域名的描述信息。
长度不超过255个字符。
This is a zone example.
- 单击“确定”。
- 添加记录集
- 在“公网域名”页面的域名列表中,单击待添加CAA记录集的域名domain.com。
- 单击“添加记录集”。
- 根据界面提示配置相关参数,参数说明如表6所示。
表6 添加CAA类型记录集参数说明 参数
参数说明
取值样例
主机记录
解析域名的前缀。
例如创建的域名为“domain.com”,其“主机记录”设置包括:
置空
类型
记录集的类型,此处为CAA类型。
添加记录集时,如果提示解析记录集已经存在,说明待添加的记录集与已有的记录集存在限制关系或者冲突。
详细内容请参见为什么会提示解析记录集已经存在?。
CAA – CA证书颁发机构授权校验
线路类型
解析的线路类型用于DNS服务器在解析域名时,根据访问者的来源,返回对应的服务器IP地址。
默认值为“全网默认”。
仅支持为公网域名的记录集配置此参数。
- 全网默认:默认线路类型,当未根据访问者来源设置解析线路时,系统会返回默认解析结果。
- 运营商线路解析:根据访问者所在运营商,设置解析线路。
- 地域解析:根据访问者所在地域,设置解析线路。
全网默认
TTL(秒)
解析记录在本地DNS服务器的缓存时间,以秒为单位。
默认值为“300秒”。取值范围为:1~2147483647
如果您的服务地址经常更换,建议TTL值设置相对小些,反之,建议设置相对大些。
更多TTL相关内容请参见什么是TTL值?。
5分钟,即300s。
值
指定要授权的证书颁发机构,使其可以给域名或者子域名颁发证书。
最多可以输入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
标签
可选参数,记录集的标识,包括键和值,每个记录集可以创建10个标签。
键和值的命名规则请参见表7。
说明:如您的组织已经设定云解析服务的相关标签策略,则需按照标签策略规则为记录集添加标签。标签如果不符合标签策略的规则,则可能会导致记录集创建失败,请联系组织管理员了解标签策略详情。
example_key1
example_value1
描述
可选参数,对域名的描述。
长度不超过255个字符。
The description of the hostname.
- 单击“确定”,完成CAA类型记录集的添加。
验证CAA解析记录是否生效?
CAA解析记录可以通过dig+trace命令查看域名是否生效以及具体的解析过程。如果操作系统没有自带dig命令,需要手动安装后才能使用。
命令格式为:dig [类型] [域名] +trace。
示例如下:
dig caa www.domain.com +trace