导读(3行收益):网站证书过期是低频但高破坏的事故:浏览器直接提示「不安全」,客户不敢下单,发现时往往已经挂了半天。本文给一套「自动续期+到期监控+告警」的方案,附检查清单。看完能避免你的官网再次裸奔在过期证书上。
一、证书过期为什么是「沉默事故」
证书有效期现在普遍是 90 天,过期事故的三个特征:
- 低频:一年最多 4 次,容易忘记;
- 高破坏:浏览器红色警告,用户第一反应是关掉页面;
- 晚发现:没有监控的话,往往用户投诉了才知道。
根源是把证书续期当成了「人工记日子」。正确做法是把续期自动化、把过期监控化:证书自己会续,续不上有人知道。
二、证书部署位置:先搞清楚证书在哪
排查证书问题前,先明确证书实际部署在哪一层:
| 部署位置 | 常见情况 | 到期影响 |
|---|---|---|
| 云负载均衡/网关 | 证书配置在 LB 上 | LB 层拦截,后端无感知 |
| Web 服务器(Nginx) | 证书文件在服务器 | 站点直接报错 |
| CDN 边缘节点 | 证书配置在 CDN | 回源正常但边缘失效 |
关键点:证书可能同时存在多处(CDN 一份、源站一份),只续一处不够;先摸清证书在哪,再谈自动化。排查顺序建议:浏览器看证书 → 确认是哪个域名/哪层失效 → 逐层检查 LB、Nginx、CDN 的证书配置与剩余天数,先定位后动手。
三、自动续期:让证书自己续
用 ACME 客户端实现自动签发与续期(以 certbot 为例):
# 安装并首次签发(Webroot 方式,不需要停机)
certbot certonly --webroot -w /var/www/html -d www.example.com
# 测试自动续期是否正常
certbot renew --dry-run
# 加入每日定时任务,到期前自动续期
0 3 * * * certbot renew --quiet --deploy-hook "nginx -s reload"
避坑:续期成功不等于生效——证书文件更新后 Web 服务器要重新加载(nginx -s reload),--deploy-hook 就是干这个的;续期脚本失败要有输出可查(写日志),别静默失败。免费证书与收费证书的选择也影响自动化:ACME 协议签发的证书天然支持自动续期,手动上传的收费证书通常要人工替换,评估自动化方案前先确认证书来源支持续期接口。
四、到期监控与告警:续不上要有人知道
自动续期不是 100% 可靠,监控兜底:
- 外部探测:用第三方工具或自建脚本,定期访问站点检查证书剩余天数(从外部探测才真实,服务器本地自检可能被自身问题掩盖);
- 阈值告警:剩余 < 30 天提醒、< 7 天紧急告警、已过期立刻告警(短信/邮件/企业微信均可);
- 续期日志:每次续期结果落日志,失败自动重试并告警;
- 恢复动作:告警接收人要有固定处置步骤(先看续期日志、再手动执行
certbot renew、最后外部复测),流程写进文档,别临时查。
# 探测证书剩余天数(openssl 方式)
echo | openssl s_client -servername www.example.com \
-connect www.example.com:443 2>/dev/null \
| openssl x509 -noout -enddate
监控脚本建议每天跑一次(证书 90 天周期,按天粒度足够),结果与阈值比对后进入告警通道;告警要带上证书域名与剩余天数,收到的人一眼能判断紧急程度,而不是只有一句「证书有问题」。
五、踩坑清单
- [ ] 把续期当人工记日子,90 天到期忘了续;
- [ ] 只续 CDN 不续源站,回源报错;
- [ ] 续期成功没 reload,证书文件换了但服务没加载;
- [ ] 续期脚本静默失败,没有日志没有告警;
- [ ] 本地自检证书,机器本身异常时自检也失效;
- [ ] 没有外部探测,用户投诉了才知道过期;
- [ ] 多张证书只配了部分自动续期,漏网的到期照样挂。
六、工程落地建议
证书管理建议按「自动续期+外部监控+分级告警」落地,先摸清证书部署位置再配置自动化。若团队没有现成运维体系,可基于成型平台(如乔拓云企业网站)的托管能力快速起步,重点核对证书自动续期与到期告警是否已配置。
七、复盘清单(可直接抄走)
- [ ] 是否已列出全部证书部署位置(LB/Nginx/CDN);
- [ ] 是否配置自动续期且带 reload 钩子;
- [ ] 是否有外部探测与 30/7/0 天分级告警;
- [ ] 续期日志是否可查、失败是否告警;
- [ ] 最近一次续期记录是否正常;
- [ ] 监控是否外部探测、告警是否带域名与剩余天数。
结语
证书过期是最典型「低频高破坏」的事故,靠人记不住,靠脚本才能闭环。自动续期、外部监控、分级告警三件事做完,证书问题就不会再半夜找你。本文仅作技术分享,具体功能以各平台官方实时信息为准。