方案概述 应用场景
CAA(Certification Authority Authorization,证书颁发机构授权)是一项防止HTTPS证书错误颁发的安全措施,遵从IETF RFC6844。从2017年9月8日起,要求CA(Certification Authority,证书颁发)机构执行CAA强制性检查。
全球约有上百个CA机构有权发放HTTPS证书,证明您网站的身份。假如浏览器将某个CA机构列入黑名单,并宣称不再信任其颁发的HTTPS证书,当您访问到部署了这些HTTPS证书的网站时,会被提示HTTPS证书不受信任,如图1所示。
图1 HTTPS证书错误颁发 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所示。 表1 CAA记录配置规则 场景
说明
示例
设置单域名CAA记录
该字段表示只有ca.example.com可以为域名domain.com颁发证书,未经授权的第三方CA机构申请域名domain.com的HTTP证书将被拒绝。
0 issue "ca.example.com"
该字段表示拒绝任何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
详细请参见域名注册产品价格详情。
云解析服务
公网域名
记录集
公网域名:domain.com 记录集类型:CAA 值:
0 issue "ca.abc.com"
0 iodef "mailto:admin@domain.com"
1
免费
设置公网域名的CAA记录流程 为公网域名添加CAA记录集的流程如图2所示。
图2 设置公网域名CAA记录 实施步骤 创建公网域名
进入公网域名列表页面。 在公网域名页面,单击“创建公网域名”。 根据界面提示配置相关参数,参数说明如表4所示。 图3 创建公网域名 表4 创建公网域名参数说明 参数
说明
示例
域名
从域名注册商处购买的域名。
域名的格式请参见域名格式与级别。
domain.com
企业项目
公网域名关联的企业项目,用于将公网域名资源按照企业项目进行管理。
仅当用户使用的“账号类型”为“企业账号”时,显示该参数,且参数必选。
配置原则:
如果不通过企业项目管理域名资源,则采用默认值“default”。 如果通过企业项目管理域名资源,则在下拉列表中选择已经创建的企业项目。 在设置该参数前,您需要完成创建企业项目。
更多关于企业项目的信息,请参见《企业项目管理用户指南》。
default
标签
可选参数。
域名的标识,包括键和值,每个域名可以创建20个标签。
example_key1
example_value1
描述
可选参数。
域名的描述信息。
长度不超过255个字符。
This is a zone example.
单击“确定”。
添加记录集
在“公网域名”页面的域名列表中,单击待添加CAA记录集的域名domain.com。 系统进入domain.com的域名解析记录页面。
单击“添加记录集”。 系统进入“添加记录集”页面。
根据界面提示配置相关参数,参数说明如表5所示。 图4 添加CAA类型记录集 表5 添加CAA类型记录集参数说明 参数
说明
示例
记录类型
记录集的类型,此处为CAA类型。
添加记录集时,如果提示解析记录集已经存在,说明待添加的记录集与已有的记录集存在限制关系或者冲突。
详细内容请参见为什么会提示解析记录集已经存在?。
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值?。
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.
单击“确定”,完成CAA类型记录集的添加。
验证CAA解析记录是否生效 CAA解析记录可以通过dig+trace命令查看域名是否生效以及具体的解析过程。如果操作系统没有自带dig命令,需要手动安装后才能使用。
命令格式为:dig [类型] [域名] +trace。
示例如下:
dig caa www.domain.com +trace