什么是CAA?
CAA(Certification Authority Authorization,证书颁发机构授权)是一项防止HTTPS证书错误颁发的安全措施,遵从IETF RFC6844。从2017年9月8日起,要求CA(Certification Authority,证书颁发)机构执行CAA强制性检查。从此,不是任意CA都可以为任意域名颁发证书了。
什么是CAA标准?
CAA标准是指域名所有者在其域名DNS记录的CAA字段中,授权指定CA机构为其域名颁发证书。
全球约有上百个CA机构有权颁发HTTPS证书,CAA标准可以使网站管理者将指定CA机构列入白名单,仅授权指定CA机构为其网站颁发证书,防止HTTPS证书错误颁发。设置CAA记录是提高网站安全性的方法之一。
CA机构在为域名签发证书时执行CAA强制性检查:
· 如果检查域名的DNS记录,发现未设置CAA字段,则为该域名颁发证书。
这种情况下,任何CA机构均可为该域名签发证书,可能存在HTTPS证书错误颁发的风险。
· 如果检查域名的DNS记录,在CAA字段发现获得授权,那么被授权的CA机构有权为该域名颁发证书,防止了HTTPS证书错误颁发。
· 如果检查域名的DNS记录,在CAA字段发现未获得授权,则拒绝为该域名颁发证书,这样也就防止未授权HTTPS证书错误颁发。
想要顺利执行CAA标准,需要三方共同完成:
· DNS服务商:升级DNS系统使其支持CAA记录设置;
· 域名所有者:在DNS记录的CAA字段中,授权指定的几家CA机构为其签发证书;
· CA机构:CA机构签发证书之前,强制性检查DNS CAA记录。
CAA作为一种DNS资源记录,可以让域名持有者指定授权一家或多家CA为其域名(或子域名)颁发证书。当域名存在CAA记录时,则只允许在记录中列出的CA为该域名(或子域名)颁发证书。如果申请签发证书时,DNS记录中CAA提示未授权,那么证书签发将失败,如下图所示:
面对CA机构证书签发失败的这个情况,则表明图上SECTIGO(原COMODO) CA在检查域名的DNS记录时发现在CAA字段未获得的授权,所以拒绝为该域名颁发证书。换句话说,该域名持有者指定了某一个CA为其颁发证书,比如 Digicert CA,而没有将SECTIGO(原COMODO) CA纳入授权列表中。
如何解决CAA未授权问题?
登录您的域名DNS管理界面,在您申请证书的域名上新增一条DNS记录,记录类型选择CAA即可。
CAA记录值常见几种格式:
0 issuewild “sectigo.com”
0 issue “sectigo.com”
0 issuewild “digicert.com”
0 issue “digicert.com”
添加完成后等待记录生效,验证解析是否生效,可打开将域名输入到空白框中,选择CAA进行验证。
CAA记录生效后,即可在授权的CA中任选证书为该域名签发证书。
注:如果申请证书时未能成功签发,检测原因是未授权该CAA,如上面的示例,那么在新填CAA记录生效后,取消原申请证书订单,重新提交申请即可。