背景
2015年发生过一起著名的沃通误签发GitHub域名SSL证书事件,用户在使用schrauger.github.com以及schrauger.github.io的个人子页面权限,获取沃通信任后,成功拿到了github.com、github.io、www.github.io这几个域名的证书。此时,如果把用户的访问流量劫持到本地服务器,那么浏览器就能访问位于本地的伪造GitHub钓鱼网站,HTTPS安全加密通信将没有任何作用。
据权威部门统计,全球约有上百个证书颁发机构(CA)有权发放HTTPS证书,证明您网站的身份。但是证书颁发机构由于某些原因,往往会被浏览器列入"黑名单" ,并公开宣布将不再信任其签发的https证书。所以当你访问到部署了这些证书的网站时,部分浏览器比如谷歌、火狐会提示"https证书不受信任",浏览器地址栏的https也会被划上一条小红线,网页不能访问,如图所示。今年6月1日,《中华人民共和国网络安全法》正式实施,标志着网络安全已得到国家的高度重视。其中,第二十一条规定,网络运营者有承担采取防范计算机病毒和网络攻击、网络侵入等危害网络安全行为的技术措施的义务。因此,迫切需要一项公共标准来授权域名所有者指定允许为其域名颁发HTTPS证书的机构。
CAA(Certification Authority Authorization,即证书颁发机构授权)是一项防止HTTPS证书错误签发的安全措施,于2013年1月通过互联网工程任务组(IETF)的批准列为RFC6844,2017年3月,CA浏览器论坛投票通过187号提案,要求CA机构从2017年9月8日起执行CAA强制性检查。 CAA标准使得网站所有者,仅授权指定CA机构为自己的域名颁发证书,以防止HTTPS证书错误签发。 为网站域名设置CAA记录也成为了提高网站安全性的方法之一。 目前,阿里云云解析DNS作为国内最大的权威DNS服务商,已率先支持CAA记录类型。那么怎样设置CAA记录?CAA记录具体表示什么意思呢?CAA格式
CAA记录的格式为:[flag] [tag] [value],是由一个标志字节的[flag]和一个被称为属性的标签[tag]-值[value]对组成,可以将多个CAA字段添加到域名的DNS记录中。
字段 | 说明 |
flag | 0-255之间的无符号整数,用于认证机构限制标志,通常情况下填0,表示如果颁发证书机构无法识别本条信息,就忽略。 |
tag | 目前有三种issue、issuewild、iodef。
|
value | CA的域名或用于违规通知的电子邮箱; |
CAA记录示例
例如:我只允许midengd.xyz的证书是symantec.com颁发的,并且如果有违规通知我的邮箱admin@midengd.xyz。