CAA解析未授权影响SSL证书签发如何解决
什么是 CAA? CAA 背景事件
CAA(Certification Authority Authorization,证书颁发机构授权)是一项防止 HTTPS证书错误颁发的安全措施,遵从 IETF RFC6844。2017年3月7日,CAB Forum (一个证书颁发机构与浏览器的技术论坛)发起了一项关于对域名强制检查CAA的一项提议的投票,获得187票支持,投票有效,提议通过。提议通过后,将于 2017 年 9 月 8 日根据 Mozilla 的 Gervase Markham 提出的检查 CAA 记录作为基准要求来实施。从 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记录生效后,即可在授权的CA中任选证书为该域名签发证书。
注:如果申请证书时未能签发,检测原因是未授权该 CAA,如上面的示例,那么在新填 CAA 记录生效后,取消原申请证书订单,重新提交申请即可。