设置DNS CAA记录,防止HTTPS证书错误签发
全球约有上百个证书颁发机构(CA)有权发放HTTPS证书,证明您网站的身份。CAA标准使得网站可以将指定CA机构列入白名单,仅授权指定CA机构为自己的域名颁发证书,防止HTTPS证书错误签发。设置CAA记录是提高网站安全性的方法之一。
什么是CAA标准
CAA(CertificationAuthority Authorization,即证书颁发机构授权)是一项防止HTTPS证书错误签发的安全措施,于2013年1月通过互联网工程任务组(IETF)的批准列为RFC6844,2017年3月,CA浏览器论坛投票通过187号提案,要求CA机构从2017年9月8日起执行CAA强制性检查。
CAA标准是指域名所有者在其域名DNS记录的CAA字段中,授权指定CA机构为其域名签发证书,CA机构签发证书时强制性检查CAA记录,如果检查发现未获得授权,将拒绝为该域名签发证书,从而防止未授权HTTPS证书错误签发。如果域名所有者没有为其域名设置CAA记录,那么任何CA都可以为其域名颁发证书。
要顺利执行CAA标准,需要三方共同完成:
DNS服务商:升级DNS系统使其支持CAA记录设置;
域名所有者:在DNS记录的CAA字段中,授权指定的几家CA机构为域名签发证书;
CA机构: CA机构签发证书之前,强制性检查DNS CAA记录。
如何设置DNS CAA记录
CAA记录由一个标志字节和一个被称为属性的标签-值对组成,可以将多个CAA字段添加到域名的DNS记录中。
(1)设置单域名
domain.com. CAA 0 issue"wosign.com"
这个CAA字段告知证书颁发机构,只有wosign可以为该特定域名颁发证书。未经授权的第三方尝试通过其他CA注册获取用于该域名的SSL/TLS证书将被拒绝。
(2)用作警报
domain.com. CAA 0 iodefmailto:[email protected]
如果第三方尝试为一个未获得授权的域名申请证书,该CAA字段会告诉CA向网站所有者发送一封邮件。Iodef属性还支持URL端点,可以记录尝试在其他CA申请HTTPS证书的行为。
domain.com. CAA 0 iodef "http://domain.com/fraud-log/"
(3)设置多个子域名
如果站点使用多个子域,则CAA记录也可以限制钓鱼攻击者对其中任何一个域名申请HTTPS证书。
downloads. domain.com. CAA 0 issue"wosign.com"
news. domain.com. CAA 0 issue"certum.eu"
forum. domain.com. CAA 0 issue"startcom.org"
(4)设置通配域名
此外,CAA记录也可用于将通配符证书的颁发权限指定仅限一家CA。
domain.com. CAA 0 issuewild "wosign.com"
如果您不想手动设置CAA记录,也可以通过自动生成工具生成一段CAA记录,发布到DNS系统中。