首页/安全/加密与证书速查/证书透明(CT)与 SCT

证书透明(CT)与 SCT

证书透明要求公共 CA 把证书提交到公开日志,证书附带 SCT 证明(嵌入证书扩展、TLS 扩展或 OCSP 响应);浏览器据此发现误签发,是公共 PKI 的监督机制。

加密与证书速查安全更新于 2026-10-13

证书透明是什么

证书透明(Certificate Transparency,CT)要求公共 CA 把签发的证书提交到只可追加的公开日志,并拿到一份签名时间戳(SCT)作为提交凭证。证书只有附带足量有效 SCT 才会被浏览器接受,这样任何误签发都会留下公开痕迹,域名持有者与研究者都能发现。它解决的是「CA 被攻破或违规签发,外界毫不知情」的问题,属于公共 PKI 的监督机制,自建内网 CA 不涉及。

基本信息

标准RFC 6962(v1)、RFC 9162(v2)
SCT 交付方式证书扩展、TLS 握手扩展、OCSP 响应三种
嵌入证书的格式只支持 v1;握手与 OCSP 中可出现 v2
浏览器要求Chrome 等要求公共信任证书带足量有效 SCT
主要用途查询域名历史证书、发现误签发、监控异常签发

典型使用场景

  • 上线前检查:确认新签发的公网证书带够 SCT,避免浏览器直接报错。
  • 资产清点:用日志查询某个域名历史签发过哪些证书,找出被遗忘的旧证与旧子域。
  • 误签发监控:定期比对自己资产在日志中的记录,发现未授权的签发方。
  • 迁移与交接:域名转入新团队时,用日志确认没有遗留证书仍在生效。
  • 取证排查:怀疑证书被替换时,用日志时间线核对签发行为。

SCT 交付方式对比

交付方式位置注意事项
证书扩展CA 把 SCT 列表写回证书里最直观,openssl 直接可见
TLS 握手扩展服务端在握手时单独发送 SCT 列表由服务端配置决定,需确认已开启
OCSP 响应随吊销查询响应一并返回依赖 OCSP 通道可用
预证书带 poison 扩展的提交版本只在日志与调试工具中出现,不装入服务端

检查 SCT 与日志记录

检查 SCT 与日志记录
openssl x509 -in cert.pem -noout -text | grep -A2 'CT Precertificate' | head   # 看 SCT 内容
openssl x509 -in cert.pem -noout -text | grep -c 'Signed Certificate Timestamp'   # 数 SCT 条数
# 查询某域名在公开日志中的历史记录(会把域名提交给第三方服务,注意合规)
# curl -s 'https://crt.sh/?q=example.com&output=json' | head -40
自建内网 CA 签发的证书不涉及 CT,也不需要 SCT。判断依据是证书是否面向浏览器信任的公共 CA 体系。

易错点

  • 把缺少 SCT 的证书部署到公网站点:浏览器会因 CT 合规不通过而报证书错误。
  • 不监控自有域名在日志中的记录:误签发要在攻击者利用之后才被发现。
  • 把 CT 日志当吊销渠道:日志只记录签发事件,吊销还得靠 CRL、OCSP 或缩短有效期。
  • 把内部域名提交给公开查询服务:造成资产与子域信息外泄。

数据来源与参考

  • RFC 9162(Certificate Transparency v2)
  • RFC 6962(v1)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌