排错指南

证书透明度日志里出现了没见过的证书

监控期间,域名下出现了不是本站签发的新证书。

所有受信任 CA 签发的证书都必须提交到公开的证书透明度日志,任何人都能查。这是浏览器的强制要求,目的就是让误签和偷签无处藏身。

所以「你的域名下出现了一张新证书」是一条能被察觉的事实。大多数时候它有正当来源;少数时候,它是你最需要知道的一件事。

按可能性从高到低排查

可能性怎么确认
其他团队自己申请的问一圈运维、前端、某条业务线——最常见的答案
CDN / 云厂商代签接入 CDN、负载均衡、对象存储自定义域名时,厂商会自动签发
历史采购遗留以前买的商业证书还在自动续期,当事人可能已经离职
子域名被接管最危险的一种,见下一节

确认是自己人申请的之后,在证书上标记为可信,以后它的续期不再提示。

需要警惕的情况:子域名接管

如果一个子域名的 CNAME 指向了已经释放的云资源——下线的对象存储桶、注销的 SaaS 账号、删掉的负载均衡——别人可以重新占用那个资源,然后用你的子域名申请一张合法证书

  • 证书是真的:公开 CA 签发,浏览器完全信任,访客不会看到任何警告。
  • 对方可以在这个子域名上放任何内容,拿 Cookie、做钓鱼。
  • CT 日志往往是唯一的早期信号。你自己的监控发现不了,因为那个子域名根本不在监控列表里。
检查一个可疑子域名指向哪里
dig +short CNAME suspicious.example.com
curl -sI https://suspicious.example.com | head -5

发现悬空的 CNAME 就立即删掉解析记录。资源已经释放的情况下,保留解析没有任何用处,只留下一个入口。

怎么减少这类意外

  • 加 CAA 记录,限定哪些 CA 可以为这个域名签发。CA 在签发时必须检查它(RFC 8659),这是强制要求,不只是建议。
  • 下线服务时先删解析,再释放云资源。顺序反了就会留下悬空记录。
  • 把子域名也加入监控,这样它们的证书变化同样会被看到。

另一种情况:当前证书在日志里找不到

如果提示的是当前提供的证书在 CT 日志中找不到,通常说明它由私有 CA 或自签名产生——这类证书不会进入公开日志。

内网服务这样用是正常的。但要知道一个后果:「出现未知新证书」的提醒对这个端点不会生效,因为无法把它和日志里的记录对上。这个功能在这里是失效的,而不是「一切正常」。

常见问题

检测一下你自己的域名

免登录,一次真实的 TLS 握手,直接给出结论:还有多少天到期、证书链是否完整、是否包含这个域名。

需要一张新证书?本站提供基于 Let's Encrypt 的免费签发,支持泛域名。

了解免费证书

其他排错指南

Last updated on