所有 SSL 文章 SSL 与证书

证书透明度:如何监控你域名的证书签发情况

证书透明度(CT)是一个将每张公开签发的 SSL 证书记录到公开、只可追加的日志中的系统。这意味着任何人都可以查看为任何域名签发了哪些证书——并发现未授权或欺诈性的证书。

CT 由 Google 于 2013 年创建,起因是 CA 为不应签发的域名签发了证书(特别是 2011 年 DigiNotar 事件,该事件导致了伪造的 Google 证书)。自 2018 年起,所有受公开信任的 CA 必须将每张证书提交到 CT 日志。

为什么 CT 很重要

没有 CT 的时代(2018 年之前)

CA 可以为不属于你的域名(如 google.com)签发证书,没人会知道,直到该证书被积极用于攻击。CA 完全基于信任运作。

有了 CT 之后

每张证书都被公开记录。如果 CA 为 google.com 签发了证书,它会在数小时内出现在 CT 日志中。Google(或任何监控方)可以立即发现。

如何查询你域名的 CT 日志

crt.sh —— 最流行的 CT 搜索工具

访问 crt.sh 并输入你的域名。你将看到该域名的所有已签发证书:

  • Issuer —— 哪个 CA 签发的
  • Not Before / Not After —— 有效期
  • SAN —— 证书覆盖的域名
Example results for example.com:
  2026-05-08  Let's Encrypt R10       example.com, www.example.com
  2026-02-15  Let's Encrypt R10       example.com
  2025-11-20  Let's Encrypt R3        example.com, www.example.com
  ...

命令行搜索

curl -s "https://crt.sh/?q=yourdomain.com&output=json" | jq '.[] | {issuer_name, not_before, not_after, common_name}'

需要关注的异常

  • 你没有申请过的证书 —— 可能有人在冒充你的域名
  • 意外的 CA —— 如果你只使用 Let’s Encrypt 但看到 DigiCert 的证书,需要调查
  • 你没有创建的通配符证书 —— 来自未知来源的 *.yourdomain.com
  • 你不认识的子域名 —— 你未申请的证书中出现了 secret.yourdomain.com

CT 的技术原理

  1. CA 签发证书并将其提交到一个或多个 CT 日志
  2. CT 日志返回 SCT(签名证书时间戳)—— 证明证书已被记录
  3. SCT 被嵌入证书中(或在 TLS 握手时提供)
  4. 浏览器验证 SCT —— Chrome 要求证书具有来自至少 2-3 个 CT 日志的有效 SCT
  5. 任何人都可以监控日志中为其域名签发的证书

CT 日志是只可追加的——证书只能添加,不能删除或修改。这创建了一个可审计的历史记录。

设置 CT 监控

要进行自动化监控,使用在你的域名有新证书签发时发出警报的服务:

工具方式费用
crt.sh(手动)定期搜索免费
Cert Spotter(SSLMate)新证书邮件提醒免费套餐
Facebook CT Monitor通过 Facebook 工具发出警报免费
Google Certificate Transparency搜索 Google 的 CT 日志免费

CT 与 GetHTTPS

当你通过 GetHTTPS 获取证书时,Let’s Encrypt 会自动将其提交到多个 CT 日志。你可以在签发后到 crt.sh 搜索你的域名进行验证——你的证书会在几分钟内出现。

这是设计使然——所有证书的公开记录是一项安全特性,而非隐私问题。证书本身(域名、公钥、CA)在 TLS 握手时已经会发送给每个访问者。

常见问题

我能选择不加入证书透明度吗?

对于公开信任的证书,不能。自 2018 年起,所有 CA 必须将证书提交到 CT 日志。浏览器(Chrome、Safari)会拒绝没有有效 SCT 的证书。私有/内部 CA 不受此限制——它们不提交到公开 CT 日志。

CT 会泄露我服务器的 IP 地址吗?

不会。CT 日志包含证书信息(域名、公钥、CA、有效期),但不包含服务器的 IP 地址。DNS 记录会暴露 IP——CT 日志不会增加新的信息。

我发现了一张我没有申请的域名证书,该怎么办?

  1. 检查签发者——可能是你的主机商的 AutoSSL?
  2. 检查 SAN——是否包含你认识的域名?
  3. 如果确实是未授权的,联系签发 CA 请求吊销
  4. 检查你的 DNS 是否有未授权的更改——有人可能将你的域名指向了他们的服务器

存在多少个 CT 日志?

数十个。主要运营商包括 Google(Argon、Xenon)、Cloudflare(Nimbus)、DigiCert、Sectigo 和 Let’s Encrypt。浏览器要求 SCT 来自多个独立日志,以防止单个被入侵的日志隐藏欺诈证书。

相关文章

SSL 与证书 2026-05-07
什么是证书颁发机构(CA)?
证书颁发机构签发 SSL 证书以证明网站身份。了解 CA 的工作原理、信任模型、主要 CA,以及 Let's Encrypt 如何改变了行业。
SSL 与证书 2026-05-07
证书信任链详解
浏览器如何通过从根 CA 到中间 CA 再到你的证书的链条来验证 SSL 证书。了解为什么链顺序很重要,以及如何修复'证书不受信任'错误。
SSL 与证书 2026-05-08
什么是 SSL 证书?
SSL 证书是一个数字文件,用于验证网站身份并启用加密 HTTPS 连接。了解证书包含什么、如何工作、如何免费获取,以及为什么每个站点都需要。
在浏览器中获取免费 SSL 证书
无需安装,无需账号。私钥始终留在你的设备上。
获取证书