根证书植入意味着什么
把自签根证书加入系统信任库后,配合能够签发对应站点证书的中间人代理,TLS 流量就可以在不触发告警的情况下被解密。排查这类中间人的重点是新增证书文件与信任库更新时间:Debian 系把证书放入 /usr/local/share/ca-certificates/ 后执行 update-ca-certificates,RHEL 系放入 /etc/pki/ca-trust/source/anchors/ 后执行 update-ca-trust。企业统一部署的代理证书属正常基线,异常判断要看签发主体与部署记录。
基本信息
| Debian 目录 | /usr/local/share/ca-certificates/,命令 update-ca-certificates |
|---|---|
| RHEL 目录 | /etc/pki/ca-trust/source/anchors/,命令 update-ca-trust |
| 生成产物 | /etc/ssl/certs/ca-certificates.crt 等合并信任库 |
| 排查点 | 新增证书文件的时间、Subject 与 Issuer 字段 |
典型使用场景
- 确认主机是否被部署了可解密 TLS 的中间人证书
- 对比备份中的信任库目录,找出新增的证书文件
- 核对证书签发主体与企业内部部署清单是否一致
- 判断某个异常外联是否经过代理被解密的可能
- 为报告提供流量是否被中间人的判断依据
核查新增证书
核查新增证书
ls -lt --time-style=long-iso /usr/local/share/ca-certificates/ 2>/dev/null | head
ls -lt --time-style=long-iso /etc/pki/ca-trust/source/anchors/ 2>/dev/null | head
openssl x509 -in /usr/local/share/ca-certificates/corp.crt -noout -subject -issuer -dates 2>/dev/null
openssl crl2pkcs7 -nocrl -certfile /etc/ssl/certs/ca-certificates.crt 2>/dev/null | openssl pkcs7 -print_certs -noout | head -20
stat -c '%n %y' /etc/ssl/certs/ca-certificates.crt 2>/dev/null # 信任库最后一次重建时间证书字段读法
| 字段 | 含义 | 判读要点 |
|---|---|---|
| Subject | 证书主体名称 | 出现陌生组织名需追溯部署记录 |
| Issuer | 签发者 | 自签证书中与 Subject 相同 |
| 有效期 | 起止时间 | 超长有效期多用于长期中间人 |
| 基本约束 | 是否标记为 CA 证书 | CA:TRUE 才可用于签发下级证书 |
只看目录不够,证书必须执行过信任库更新命令才会真正生效;判断时要同时看证书文件时间与合并信任库的最后重建时间。
域名侧也可交叉印证:日志中记录的站点证书链若有陌生签发者,或与其正常签发者不符,说明流量很可能经过了代理解密。
删除信任库中的证书属于高风险变更,先备份原文件与生成物,确认哪些业务依赖该证书后再调整。
若主机已经部署了企业级代理证书,核查重点转为证书是否与部署工单一一对应,以及是否存在工单之外的额外证书,只按有无来判断会把正常基线误报。