文档首页/ 云解析服务 DNS/ 最佳实践/ 设置CAA记录防止错误颁发HTTPS证书
更新时间:2024-03-15 GMT+08:00

设置CAA记录防止错误颁发HTTPS证书

方案概述

应用场景

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记录

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:

  • 授权CA机构ca.abc.com颁发不限类型的证书。
  • 授权CA机构ca.def.com颁发通配符证书。
  • 禁止其他CA机构颁发证书。
  • 当有违反设置规则的情况发生,CA机构发送通知邮件到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记录

实施步骤

  1. 创建公网域名

    1. 进入公网域名列表页面
    2. 在公网域名页面,单击“创建公网域名”。
    3. 根据界面提示配置相关参数,参数说明如表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.

      表5 标签命名规则

      参数

      规则

      举例

      • 不能为空。
      • 对于同一资源键值唯一。
      • 长度不超过36个字符。
      • 取值为不包含“=”、“*”、“<”、“>”、“\”、“,”、“|”和“/”的所有Unicode字符,且首尾字符不能为空格。

      example_key1

      • 不能为空。
      • 长度不超过43个字符。
      • 取值为不包含“=”、“*”、“<”、“>”、“\”、“,”、“|”和“/”的所有Unicode字符,且首尾字符不能为空格。

      example_value1

    4. 单击“确定”。

  1. 添加记录集

    1. 在“公网域名”页面的域名列表中,单击待添加CAA记录集的域名domain.com。

      系统进入domain.com的域名解析记录页面。

    2. 单击“添加记录集”。

      系统进入“添加记录集”页面。

    3. 根据界面提示配置相关参数,参数说明如表6所示。
      表6 添加CAA类型记录集参数说明

      参数

      参数说明

      取值样例

      主机记录

      解析域名的前缀。

      例如创建的域名为“domain.com”,其“主机记录”设置包括:

      • www:用于网站解析,表示解析的域名为“www.domain.com”。
      • 空:用于网站解析,表示解析的域名为“domain.com”。

        主机记录置为空,还可用于为空头域名“@”添加解析。

      • abc:用于子域名解析,表示解析的域名为“domain.com”的子域名“abc.domain.com”。
      • mail:用于邮箱解析,表示解析的域名为“mail.domain.com”。
      • *:用于泛解析,表示解析的域名为“*.domain.com”,匹配“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.

      表7 标签命名规则

      参数

      规则

      举例

      • 不能为空。
      • 对于同一资源键值唯一。
      • 长度不超过36个字符。
      • 取值为不包含“=”、“*”、“<”、“>”、“\”、“,”、“|”和“/”的所有Unicode字符,且首尾字符不能为空格。

      example_key1

      • 不能为空。
      • 长度不超过43个字符。
      • 取值为不包含“=”、“*”、“<”、“>”、“\”、“,”、“|”和“/”的所有Unicode字符,且首尾字符不能为空格。

      example_value1

    4. 单击“确定”,完成CAA类型记录集的添加。

验证CAA解析记录是否生效?

CAA解析记录可以通过dig+trace命令查看域名是否生效以及具体的解析过程。如果操作系统没有自带dig命令,需要手动安装后才能使用。

命令格式为:dig [类型] [域名] +trace。

示例如下:

dig caa www.domain.com +trace