证书管理的核心两件事
发布类故障里,证书到期与证书链不完整出现频率很高。前者可以靠清单与到期提醒避免,后者常在证书替换时才暴露:只装了服务器证书却漏装中间证书,部分客户端会报不受信任。把证书当成配置资产纳入台账,问题就从「上线当天救火」变成例行维护。
基本信息
| 适用平台 | 对外发布的 HTTPS 站点、VPN、设备管理页面 |
|---|---|
| 清单字段 | 域名、签发机构、到期日、部署位置、责任人 |
| 链完整性 | 服务器证书 + 中间证书按顺序提供,根证书一般由客户端内置 |
| 检查工具 | openssl s_client 与 x509 命令,或浏览器与在线检查工具 |
典型使用场景
- 到期前检查:批量核对所有对外域名的剩余有效期,避免夜间集中过期
- 证书替换:更换签发机构或新增域名后,确认链完整且域名匹配
- 设备管理面替换:把自签名证书换成内部 CA 签发证书,消除浏览器告警
- 多机部署同步:负载均衡后多台服务器都需替换,遗漏一台就会出现随机告警
- 自动化续签失败兜底:续签脚本报错时仍需有人能看到并处理
命令行检查示例
命令行检查示例
# 查看证书主体与有效期
echo | openssl s_client -connect portal.example.com:443 -servername portal.example.com 2>/dev/null | openssl x509 -noout -dates -subject
# 查看校验结果(返回 0 表示链完整可信)
echo | openssl s_client -connect portal.example.com:443 2>/dev/null | grep -i 'verify return code'
# 查看服务实际使用的证书链层数
echo | openssl s_client -connect portal.example.com:443 -showcerts 2>/dev/null | grep -c 'BEGIN CERTIFICATE'常见故障与原因
| 现象 | 原因 | 处理 |
|---|---|---|
| 浏览器报不受信任 | 中间证书缺失或顺序错误 | 补全链并按顺序配置 |
| 部分客户端报错 | 客户端未内置该根证书 | 改用通用 CA 或补发根证书 |
| 访问提示证书域名不匹配 | 站点用了其他域名的证书 | 重新签发或配置 SNI |
| 续签后仍报旧到期日 | 服务未重载,仍在用旧证书 | 重载服务并再次验证 |
到期时间提前 30 天进入提醒清单,自动续签必须有告警通道;归档旧证书与私钥,便于回滚和事故复盘。