Cloudflare 宣布全面开放证书透明度监控(Certificate Transparency Monitoring)服务。该服务监控公共证书透明度日志,以发现与客户域名相关的新 TLS 证书。最重要的变化是,该服务今后将不再就 Cloudflare 代表客户签发的证书发送提醒,从而使收到的消息更加集中于意外证书或非 Cloudflare 签发的证书。
该服务于 2019 年以公开测试版形式推出,目前已用于超过 650,000 个客户域名。证书透明度日志监控可在某个域名下的主机名签发证书时提供早期信号,这有助于发现错误签发或未经授权签发的证书。
减少续期造成的噪声
主要问题在于,Cloudflare 会代表客户签发大量证书,包括 Universal SSL 续期、Advanced Certificate Manager 证书和备用证书。由于证书必须记录在公共 CT 日志中,才能获得 Google Chrome 和 Apple Safari 等主流浏览器的信任,因此这些签发记录会与外部证书一同出现在监控结果中。
此外,证书有效期较短,并会自动续期。一张 Universal SSL 证书大约每 60 天续期一次,一年最多可续期六次。CA/Browser Forum 投票决定到 2029 年将证书最长有效期缩短至 47 天后,预计续期频率还会增加。因此,真正有意义的提醒可能会淹没在例行续期通知之中。
用于筛选的标识符
Cloudflare 采用了spki_sha256值,即按照 DER 编码的 SubjectPublicKeyInfo 结构计算出的 SHA-256 哈希。该证书排序服务在创建密钥时,根据证书签名请求计算这一数值,也就是在签发流程开始之前计算。
提醒服务会根据 CT 日志条目中的公钥重新计算该值,然后在证书排序服务的数据库中查找。如果找到匹配项,Cloudflare 就知道该证书由其系统签发,并会屏蔽提醒。如果找不到该值,则会像以前一样发送提醒。
之所以选择公钥,是因为它在证书签名请求、预备证书和最终证书的各个阶段保持不变,而且 Cloudflare 会为每次签发创建新的密钥对。因此,即使预备证书和最终证书日志在不同时间到达,也可以将其作为证书请求的实用且唯一的标识符。
提醒会发生什么变化?
- 由 Cloudflare 管理的证书,包括 Universal SSL、Advanced Certificate Manager、Total TLS 和备用证书,将不再生成电子邮件提醒。
- 被遗弃的预备证书有时会在签发流程未完成的情况下被记录,只要它们与 Cloudflare 已知的签发相关联,就不会发送提醒。
- 客户上传的自定义证书仍会生成提醒,因为其密钥并非由 Cloudflare 创建,并且在 Cloudflare 的签发服务中没有相应记录。
Cloudflare 还更新了电子邮件内容,在主题行中显示受影响的域名,并加入证书详情及其在控制面板中的链接,以便用户进行检查并采取适当措施。
可用性与后续计划
筛选功能已为现有用户启用,无需采取任何操作。尚未使用该服务的用户可以通过 Cloudflare 控制面板依次进入 SSL/TLS、Edge Certificates 和 Certificate Transparency Monitoring 来启用。该服务向所有套餐提供且无需额外费用,不同套餐级别的提醒接收者设置保持统一。
Cloudflare 计划之后将该服务加入 Cloudflare Notifications,从而允许将 CT 提醒发送到 webhooks、PagerDuty 或其他电子邮件地址,而不是像目前这样仅依赖电子邮件。