HTTPS 证书过期导致服务中断排查手册

举报
yd_282937315 发表于 2026/10/26 08:46:57 2026/10/26
【摘要】 证书过期常导致浏览器拦截、API 中断与 CDN 502。本文按定性、定位、自动续期、监控告警、应急替换的顺序,给出一套可直接照做的排查手册。

证书过期是最容易被忽视、却最容易造成全站中断的故障之一。浏览器报错通常是 NET::ERR_CERT_DATE_INVALID,App 与 API 客户端则直接拒绝连接,CDN 回源健康检查失败还可能把节点摘除,造成连锁 502。本文给出可直接照做的排查手册。


一、先定性:是不是证书问题

1. 浏览器打开故障域名,确认报错是否包含证书过期、日期无效。

2. 在服务器上执行:echo | openssl s_client -connect 域名:443 -servername 域名 2>/dev/null | openssl x509 -noout -dates,重点看 notAfter 是否早于当前时间。

3. 同时确认影响面:是单个域名、整站、还是 CDN、负载均衡、API 回调都受影响。不要只看首页能打开就下结论,移动端与服务端调用往往更严格。


二、定位证书到底部署在哪里

证书可能同时存在于多个位置,必须逐一核对:Nginx 或 Apache 配置里的 ssl_certificate 指向;CDN 域名证书;负载均衡 ELB 监听器证书;对象存储、API 网关等托管入口。常见坑是只换了服务器证书,却忘了 CDN 或 ELB 上还挂着旧证书。逐个域名用 openssl 检查,记录每个入口的签发机构、过期时间与证书链是否完整。


三、自动续期:让它不再过期

1. Let's Encrypt:certbot renew 后执行 nginx -t && nginx -s reload;务必检查定时任务,例如 0 3 * * * /usr/bin/certbot renew --quiet --post-hook "nginx -s reload",并确认 cron 服务在运行。

2. 云厂商证书:在 SSL 证书管理控制台设置到期提醒,续期后直接在 ELB、CDN 控制台更新证书绑定,不要只下载证书却不部署。

3. 商业证书:提前 30 天启动续费与验证流程,DV、OV、EV 的验证耗时不同,不能等到最后一天。

4. 续期后必须验证:重新执行 openssl 检查 notAfter,浏览器无痕模式访问一次,API 客户端也跑一次真实调用。


四、监控告警:提前 30 天、14 天、7 天三级提醒

只靠人工记日期一定会漏。建议:用 Prometheus 的 blackbox_exporter 采集 probe_ssl_earliest_cert_expiry,换算剩余天数并设置小于 30、14、7 天的分级告警;云监控中对证书到期时间配置告警;把告警同时发给值班群与值班人,不要只发邮件。告警文案要写清楚域名、剩余天数与负责人,避免收到告警却不知道该处理哪个域名。


五、应急替换步骤:先恢复,再完善

1. 确认故障域名与证书位置,5 分钟内完成定性。

2. 如原证书续签来不及,先申请一张免费 DV 证书顶上,保证恢复访问,正式证书到后再换回。

3. 在对应入口替换证书:Nginx 用 nginx -s reload 平滑重载,不要直接 restart 中断连接;ELB、CDN 在控制台完成证书更新。

4. 验证:openssl 检查新证书日期;浏览器、App、API 回调逐一验证;观察 10 分钟错误率与 502 比例是否回落。

5. 事后复盘:自动续期任务是否被删除、cron 是否停用、告警是否触发、是否有域名漏登记入台账。


六、常见坑清单

证书链不完整导致部分客户端报错;只换证书不重载服务;新旧证书文件路径写错;CDN 缓存了旧的错误页面;多域名共用一张证书,换错域名。建议建立域名与证书台账,字段包括域名、签发机构、过期时间、部署位置、续期方式与负责人,每月巡检一次。


结语:证书管理拼的不是技术难度,而是台账、自动续期与告警是否闭环。把这三件事做扎实,证书过期导致的中断基本可以避免。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。