证书信息为什么值得提取
TLS 证书可以公开获取,却能透露不少资产关系:证书里的组织名、备用名称(SAN)列表往往列出同一张证书覆盖的全部域名,内部 CA 签发的证书还会暴露内部命名规范。有效期信息则直接对应运维风险——过期证书会导致业务中断与信任告警。提取方式就是用 TLS 客户端连一次,属只读操作,但多域名站点必须带 SNI,否则拿到的是默认证书。
基本信息
| 提取内容 | Subject、SAN、颁发者、有效期、公钥算法 |
|---|---|
| 常用命令 | openssl s_client(Linux/macOS 自带,Windows 可装 Git 版) |
| 关键参数 | -servername 指定 SNI,-showcerts 输出完整链 |
| 用途 | 资产关联确认、证书过期提醒、加密配置基线 |
| 性质 | 公开信息,只读获取 |
典型使用场景
- 从 SAN 列表发现未登记的同证书域名,补全资产清单
- 识别内部 CA 签发的证书,判断该服务的管理归属
- 核查证书有效期,提前提示即将过期导致的业务中断风险
- 判断某个 IP 上承载了哪些站点,用于多租户环境区分
- 为加密配置基线提供输入:公钥算法与签名算法是否过时
命令示例
命令示例
openssl s_client -connect 203.0.113.10:443 -servername example.com </dev/null 2>/dev/null \
| openssl x509 -noout -subject -issuer -dates -ext subjectAltName
# -servername 必带:多证书环境下不给 SNI 会取到默认证书
echo | openssl s_client -connect example.com:443 2>/dev/null | openssl x509 -noout -enddate
# 记录:Subject / SAN 列表 / NotAfter;到期日换算成本地时间再核对字段读法
| 字段 | 含义 | 异常表现 |
|---|---|---|
| Subject | 证书主体,常含组织与通用名 | 通用名为内部命名时可反映内部资产关系 |
| SAN | 一张证书覆盖的全部域名 | 出现未登记域名说明资产清单可能不全 |
| Issuer | 签发者,识别自建 CA 或公共 CA | 自签名或内部 CA 说明是内部服务 |
| NotAfter | 到期时间 | 近 30 天内到期需立刻提示运维续期 |
内部 CA 与自签名证书的组织信息常能揭示资产关系与命名规范,这类线索对资产梳理的价值高于公共 CA 证书。
同一台服务器可能部署多张证书,不同域名取到的证书不同:资产清单里的每个域名都要单独取一次,不能只测一个代表域名。