全部产品
阿里云办公

使用CAA记录防止域名证书劫持

更新时间:2018-01-19 09:44:43

为您的域名设置CAA记录,是提高网站安全性的一个有效方法。本文介绍了CAA标准产生的背景,以及使用云解析DNS来设置并验证CAA记录的方法。

背景

据权威部门统计,全球约有上百个证书颁发机构(CA)有权发放HTTPS证书,以证明您网站的身份。但是证书颁发机构由于某些原因,往往会被浏览器列入”黑名单” ,并被公开宣布将不再信任其签发的HTTPS证书。所以当你访问到部署了这些证书的网站时,部分浏览器比如谷歌、火狐会提示”HTTPS证书不受信任”,浏览器地址栏的HTTPS也会被划上一条小红线,网页不能访问,如下图所示。

HTTPS证书不受信任

CAA(Certification Authority Authorization,即证书颁发机构授权)是一项防止HTTPS证书错误签发的安全措施,于2013年1月通过互联网工程任务组(IETF)批准,被列为RFC6844。2017年3月,CA浏览器论坛投票通过187号提案,要求CA机构从2017年9月8日起执行CAA强制性检查。

CAA标准使得网站所有者,仅授权指定CA机构为自己的域名颁发证书,以防止HTTPS证书错误签发。目前,阿里云云解析DNS作为国内最大的权威DNS服务商,已率先支持CAA记录类型。

CAA记录格式

CAA记录的格式为:[flag] [tag] [value],是由一个标志字节的[flag]和一个被称为属性的[tag]-[value](标签-值)对组成。您可以将多个CAA字段添加到域名的DNS记录中。

字段 说明
flag 0-255之间的无符号整数,用于标志认证机构。通常情况下填0,表示如果颁发证书机构无法识别本条信息,就忽略。
tag 支持 issue、issuewild 和 iodef。
  • issue:CA授权单个证书颁发机构发布的 任何类型 域名证书。
  • issuewild:CA授权单个证书颁发机构发布主机名的 通配符 证书。
  • iodef:CA可以将违规的颁发记录URL发送给某个电子邮箱。
value CA的域名或用于违规通知的电子邮箱。

添加CAA记录

假设,您想要只允许由 symantec.com 来颁发域名 midengd.xyz 的证书,并且发送违规通知到邮箱 admin@midengd.xyz。您可以按照以下方式来配置CAA记录。

  1. 登录到 阿里云云解析控制台

  2. 单击目标域名 操作 列下的 解析设置

  3. 添加如下两条解析记录。

    主机记录 记录值
    @ 0 issue “symantec.com”
    @ 0 iodef “mailto:admin@midengd.xyz”

    添加CAA记录

检测CAA记录

您可以使用 dig 域名 记录类型 命令来查询CAA记录解析情况。测试样例和返回结果如下所示。

  1. sh-3.2# dig midengd.xyz caa
  2. ; <<>> DiG 9.10.5rc1 <<>> midengd.xyz caa
  3. ;; global options: +cmd
  4. ;; Got answer:
  5. ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 26714
  6. ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1
  7. ;; OPT PSEUDOSECTION:
  8. ; EDNS: version: 0, flags:; udp: 4000
  9. ;; QUESTION SECTION:
  10. ;midengd.xyz. IN CAA
  11. ;; ANSWER SECTION:
  12. midengd.xyz. 600 IN CAA 0 iodef "mailto:admin@midengd.xyz"
  13. midengd.xyz. 600 IN CAA 0 issue "symantec.com"
  14. ;; Query time: 577 msec
  15. ;; SERVER: 30.26.8.5#53(30.26.8.5)
  16. ;; WHEN: Tue Dec 05 18:55:48 CST 2017
  17. ;; MSG SIZE rcvd: 114

自2017年4月,所有CA机构颁发SSL证书前必须要求对颁发证书对象的域名进行CAA检测。目前,海外Route53、dyn、Cloudflare等主要DNS服务商均已支持CAA记录,但是国内的普及程度还不够。

随着社会网络安全意识的整体提高,CAA记录作为加强网站安全的措施之一,将会成为金融机构、电子政务、公共服务等行业的一项网络安全基准要求,也会有越来越多的DNS服务商的支持CAA记录,CAA普及只是时间问题。