CT 监控是干什么的
证书透明日志公开记录公共信任证书的签发信息。把自家域名的历史记录定期拉一遍,就能发现两件要紧事:一是存在未授权签发的证书(可能来自误签、历史外包流程或恶意攻击),二是存在自己都不知道还在用的影子资产(遗留在旧云账号、旧子域下的服务)。CT 监控要配合处置流程:确认签发方、向 CA 报告、申请吊销,并回头排查私钥是否已经外泄。
基本信息
| 数据来源 | 公共 CT 日志,常用聚合查询入口 crt.sh |
|---|---|
| 技术载体 | 证书中的 SCT 列表(RFC 6962 / RFC 9162) |
| 监控目标 | 自有域名与全部子域的签发记录 |
| 处置动作 | 向 CA 报告并申请吊销,核对私钥暴露路径 |
| 覆盖范围 | 只覆盖公共信任体系;自建内网 CA 的证书不会出现在日志里 |
| 注意 | 同一张证书可能被多个日志收录,条数不等于证书数 |
典型使用场景
- 上线前基线:先摸清域名历史上被签发过哪些证书,作为后续对照。
- 定期巡检:按周或按月比对新增签发,发现异常立即处置。
- 资产清点:用日志结果反推仍有服务在跑的旧子域。
- 并购或外包交接:确认外部团队是否还持有可用的签发凭据。
- 事故调查:证书被替换时,用签发时间线还原事件顺序。
查询域名签发记录
查询域名签发记录
# 查询包含子域的记录(注意:会把域名提交给第三方服务)
curl -s 'https://crt.sh/?q=%25.example.com&output=json' | python -m json.tool | head -40
# 看某张证书实际带了多少 SCT
openssl x509 -in cert.pem -noout -text | grep -A3 -i 'CT Precertificate'
# 把结果按签发者与时间排序后归档,便于下次比对新增项告警项与处置
| 发现 | 含义 | 处置建议 |
|---|---|---|
| 出现非本公司 CA 签发的证书 | 存在未授权签发 | 向该 CA 报告并申请吊销,排查凭据泄露 |
| 出现陌生子域 | 影子资产 | 确认归属,下线或纳入证书管理 |
| 同一域名短期内大量签发 | 自动化流程异常或误签 | 核查签发流程与 ACME 账号权限 |
| 签发方已停用却仍有新记录 | 旧账号或旧流程未清理 | 回收账号权限并清理流水线 |
内部域名若使用公共 CA 签发证书,同样会暴露在公开检索里。敏感内网服务应改用自建 CA,避免子域结构与主机名对外可见。