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