到期是可以提前防住的
证书过期是低成本就能预防的事故:用命令行工具检查剩余有效期并接入监控,把续期流程与部署验证写进操作手册,就不会在到期当天手忙脚乱。开了自动续期同样要监控续期任务本身,静默失败和到期一样致命。
基本信息
| 适用平台 | 网关与内部服务的 TLS 证书 |
|---|---|
| 检查工具 | openssl 的 s_client 与 x509 子命令 |
| 告警阈值 | 剩余三十天预警,七天升级告警 |
| 覆盖范围 | 对外域名、管理域名、内部服务域名 |
检查剩余天数
检查剩余天数
echo | openssl s_client -connect api.example.com:443 -servername api.example.com 2>/dev/null | openssl x509 -noout -enddate -subject
echo | openssl s_client -connect api.example.com:443 -servername api.example.com 2>/dev/null | openssl x509 -noout -checkend $((30*24*3600)) && echo '有效期超过30天' || echo '30天内到期,需处理'典型使用场景
- 接入监控:把剩余天数做成指标并设阈值
- 续期后验证:日期、域名列表、链完整性与实际生效
- 多入口覆盖:网关域名、管理域、内部服务域都要挂
- 自动续期巡检:确认续期任务本身没有静默失败
- 变更核对:换证书后确认服务已加载新文件
检查项与异常
| 检查项 | 正常表现 | 异常表现 |
|---|---|---|
| 到期时间 | 剩余天数大于阈值 | 进入预警或升级告警区间 |
| 域名列表 | 覆盖所有被访问的域名 | 访问域名不在列表里 |
| 证书链 | 链完整可校验 | 缺中间证书导致校验失败 |
自动续期也要监控续期任务:静默失败与到期一样致命,任务失败必须有告警。
续期之后要验证实际生效:文件换了但服务没重载,用户看到的依然是旧证书。
把检查脚本挂到定时任务并记录结果:只有被记录下来的检查,才能形成可回溯的趋势。
检查要指向实际对外地址:只查本地文件可能漏掉边缘节点或负载均衡上尚未更新的证书。
把剩余天数写进值班手册:交接时看一眼,比等告警触发更主动。