为什么要设置域名 CAA记录?
2017-12-19 by dongnan
开始之前
引子是 2015
年发生过一起著名的沃通wosign
误签发 GitHub
域名SSL
证书事件,用户在使用 schrauger.github.com
以及schrauger.github.io
的个人子页面权限,获取沃通信任后,成功拿到了 github.com、github.io、www.github.io
这几个域名的证书。
此时,如果把用户的访问流量劫持到本地服务器,那么浏览器就能访问位于本地的伪造 GitHub
钓鱼网站,HTTPS
安全加密通信将没有任何作用。
所以,2017
年3月,CA浏览器论坛投票通过 187
号提案,要求CA机构从2017年9月8日起执行CAA强制性检查。
CAA
标准使得网站所有者,仅授权指定 CA机构为自己的域名颁发证书,以防止 HTTPS
证书错误签发,为网站域名设置 CAA
记录也成为了提高网站安全性方法之一。
什么是域名CAA记录?
平时使用的 SSL
证书是由某些 "颁发机构"(CA)颁发的,例如著名的赛门铁克,以及一些小的机构,
但是证书颁发机构由于某些原因,往往会有些不规范行为,例如 wosign
事件。
CAA
(Certification Authority Authorization,即证书颁发机构授权) 就是为了防止 HTTPS
证书错误签发的安全措施。
如何设置CAA记录?
目前国内的域名服务商,只有部分能够支持 CAA
记录功能,以阿里云云解析为例。
登录阿里云控制台,添加如下两条解析记录,如下所示:
@ 0 issue "symantec.com"
@ 0 iodef "mailto:admin@midengd.xyz"
如何查询CAA记录?
以 ubuntu 14.04
操作系统下的 dig
命令为例。
dig +nocmd +nocomment midengd.xyz caa | head -n5
;midengd.xyz. IN CAA
midengd.xyz. 600 IN CAA 0 issue "symantec.com"
midengd.xyz. 600 IN CAA 0 iodef "mailto:admin@midengd.xyz"
midengd.xyz. 3600 IN NS vip1.alidns.com.
midengd.xyz. 3600 IN NS vip2.alidns.com.