首页/安全/加密与证书速查/根证书过期与信任库更新

根证书过期与信任库更新

根证书过期会造成大范围校验失败;排查先确认客户端信任库中的根证书版本,再检查服务端链是否引用了已被替换的根。操作系统与语言运行时的信任库相互独立,需要分别核对。

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

根证书过期与信任库

根证书过期会造成大范围校验失败:所有依赖该根的证书都会受影响。排查时先确认客户端信任库里的根证书版本,再检查服务端链是否仍引用已被替换的根。关键点是系统信任库与语言运行时相互独立,操作系统更新过并不代表应用也更新过,需要分别核对。

基本信息

常见诱因镜像未更新 ca-certificates、IoT 设备信任库固化为不可更新
更新方式系统包升级 ca-certificates;Java 用 keytool 导入;容器镜像重建
排查点issuer 与链上根是否在当前信任库覆盖范围内
影响面换根事件会波及长期未更新的终端
验证思路用同一张证书在不同客户端环境分别验证

典型使用场景

  • 大范围「证书校验失败」事件的根因排查
  • 镜像与设备固件中的信任库版本核查
  • 换根过渡期的双链并存策略
  • 排查只有部分客户端失败:这些客户端信任库未更新
  • 把信任库版本纳入资产清单

查看信任库与链

查看信任库与链
openssl version -d                                   # 默认信任目录
ls /etc/ssl/certs | head                             # 系统信任库内容
keytool -list -cacerts -storepass changeit | wc -l   # Java 信任库条目数
# 追踪链上根的签发者与有效期
openssl s_client -connect example.com:443 -servername example.com -showcerts </dev/null 2>/dev/null | openssl x509 -noout -issuer -enddate

信任库位置

环境信任库更新方式
Linux 系统/etc/ssl/certs 与 ca-certificates 包包管理器升级
Java 运行时自带 cacertskeytool 导入或整体替换
容器镜像镜像内 CA 包重建镜像或运行时挂载
固件设备设备内固化依赖固件升级,常无法在线更新
大型 CA 换根会影响长期未更新的终端。发布前梳理客户端环境清单(系统版本、运行时、固件能力),可以在换根窗口前提前发现问题,而不是等故障发生后再逐个排查。
变更提示:换根期间建议同时部署新链与旧链材料一段时间,让尚未更新信任库的客户端平滑过渡;把信任库更新与证书更换放在同一变更窗口规划,可以避免「服务端换了、客户端还没换」的中间状态拖得过久。

易错点

  • 只更新服务端信任库 → 忽略客户端与固件设备,换根后仍有大量终端失败
  • 换根期间新旧链混布 → 部分客户端校验失败,失败比例随时间变化
  • 忽略语言运行时自带信任库 → 应用与命令行的表现不一致
  • 把信任库版本排除在资产清单之外 → 无法评估换根的影响面

数据来源与参考

  • Mozilla CA 证书计划(根证书生命周期)
  • OpenSSL 官方文档(version -d)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌