根 CA 与信任锚
根证书是信任链的起点,也叫信任锚:它自签且长期有效,被预置在操作系统、浏览器与各种语言运行时的信任库中,所有校验最终都要走到它。它的安全性并不取决于算法强度,而取决于保管方式——私钥离线保存、签名操作有流程与审计。这是下游所有证书可信的前提。
基本信息
| 地位 | 信任锚,客户端校验的终点 |
|---|---|
| 有效期 | 通常 20 年左右,视各 CA 的策略而定 |
| 保护 | 私钥离线保存或存放于 HSM,签名操作有流程与审计 |
| 客户端信任库 | 系统包、浏览器内置、Java cacerts、语言运行时各自维护 |
| 自建 PKI 必做项 | 把根证书分发到全部相关客户端信任库 |
| 更换难度 | 根证书更替需要很长的过渡期与并行分发 |
典型使用场景
- 自建 PKI:为内网服务提供可管理的信任体系
- 设备预置:IoT 设备出厂烧入信任根,后续依靠它校验服务端
- 证书签发:由根或中间 CA 签发并记录签发日志
- 排查信任失败:确认客户端信任库里是否存在对应根
- 合规审计:提交根的保管方式与签发流程说明
查看链路末端与本地根
查看链路末端与本地根
# 查看服务端下发的链,最后一张通常已接近信任锚
openssl s_client -connect example.com:443 -servername example.com -showcerts </dev/null 2>&1 | tail -20
# 查看本地信任库(路径随发行版不同)
ls /etc/ssl/certs | head
# 显式指定信任根校验,确认链能否走通
openssl verify -CAfile root.pem -untrusted chain.pem leaf.pem角色与职责
| 角色 | 保管要求 | 常见失误 |
|---|---|---|
| 根证书 | 离线保管,仅用于签发中间证书 | 长期在线并用于日常签发 |
| 中间 CA | 在线但严格限制权限 | 被允许签发任意名称 |
| 叶证书 | 部署在服务上,随服务轮换 | 有效期过长且无人维护 |
| 信任库 | 各客户端各自维护与更新 | 遗漏部分终端,导致校验失败 |
自建 PKI 时把根证书分发到全部相关客户端信任库是必做步骤,遗漏会出现链看似完整但校验失败的现象。
根私钥在线保存并用于日常签发会放大风险:一旦泄露,整个信任体系下签发的证书都不可信,且无法通过吊销挽回。
根证书更换是最难的运维动作之一:老客户端不会自动更新信任库,新根需要并行分发很长时间,期间往往还要靠交叉签名过渡。