Let’s Encrypt因bug而撤销300万个TLS凭证

免费凭证发行机构Let’s Encrypt本周指出,由于该组织所使用的凭证机构软件Boulder含有一bug,误发了许多凭证,使得它们必须撤销已颁发的3百万个TLS/SSL凭证,约占现行1.16亿个凭证数量的2.6%。

当用户向Let’s Encrypt申请网站凭证之后,Boulder会验证用户是否拥有该域名名称的控制权,同时检查凭证颁发机构授权(Certification Authority Authorization,CAA),CAA是用来确认用户的确指定由Let’s Encrypt负责颁发凭证。

这两项检查的有效性存在着时间差,成功验证域名的所有权之后,在30天之内都是有效的,而Boulder要正式颁发凭证之前的8小时,会再重新检查一次CAA。

这意味着倘若用户在申请凭证并通过Boulder的双重检验之后,没有立即取得凭证,那么Boulder在发行凭证前就会再检查一次CAA。

不过,就在Boulder重新检查CAA时,如果用户所申请的凭证是支持N个域名名称的,Boulder并没有检查这N个域名名称的CAA,而是只选择其中一个域名名称,然后检查N次。于是就可能出现用户的某些域名并未授权Let’s Encrypt颁发凭证,但还是取得了来自Let’s Encrypt的凭证。

Let’s Encrypt是在今年的2月29日发现该bug,但相信该bug自去年的7月25日就存在了。

于是Let’s Encrypt决定撤销这些受到影响的凭证,目前Let’s Encrypt尚未公布撤销凭证等时间点,但已确定会在世界标准时间(UTC)的3月5日凌晨3点(3月5日的上午11点),完成撤销作业。

Let’s Encrypt已发出邮件通知受到影响的用户,用户也可通过线上工具检查自己的域名是否受到波及。