SSL 证书过期排查实战:openssl + Nginx 4步从发现到续签

SSL 证书过期排查实战:openssl + Nginx 4步从发现到续签

**摘要:**网站打不开不是宕机,是证书到期。本文用一次支付网关事故复盘,从 openssl 一行命令确认过期,到 Nginx TLS 配置排错,再到监控脚本与自动续签,给出一条完整的 4 步止血+根治路径。文末附分级告警阈值表,可直接照搬。

一、先定位:别一上来就重启

事故当晚 23:58,支付网关开始返回 TLS 握手失败,商户流水断崖式掉单。值班的兄弟本能反应是重启服务------这跟证书过期没关系,方向全错。证书过期是红锁,不是进程退出,所以重启、加机器、改配置全都没用。

我的习惯是:先定位层,再动手 。证书是网络层第一道关,浏览器一红锁、curl 一报 certificate has expired,方向就锁死了一半。

二、Step1:openssl 一行确认到期

确认证书到期的上策是终端一行命令,登录证书后台反而绕:

复制代码
openssl s_client -connect 域名:443 \
  -servername 域名 < /dev/null 2>/dev/null \
  | openssl x509 -noout -dates

输出会告诉你 notBeforenotAfter关注 notAfter 这行。如果当前时间已经超过它,证书就是过期了。3 秒钟出结论。

三、Step2:Nginx TLS 配置排错

确认过期后,第二步是看 Nginx 是不是把新证书加载上了。很多人续签完忘了 nginx -s reload,或者 ssl_certificate 路径写错,Nginx 还在读旧证书,过期就发生在你眼皮底下。

4 个高频出问题的配置项:

  • ssl_certificate:路径写错就读不到新证书
  • ssl_certificate_key:与证书要成对,否则握手失败
  • ssl_protocols:别留 TLSv1.0/1.1,老协议隐患大
  • ssl_session_timeout:长连接调长,省握手

四、Step3:监控是否漏接

排完配置,第三步要回答一个关键问题:为什么监控没告警? 99% 的证书过期事故,根因不是没续签,是没接监控或监控阈值太松。

建议分级告警(提前量递减):

剩余天数 级别 动作
30 天 工单系统自动建单,提醒续签
15 天 企微推值班群+抄送主管
7 天 电话值班人确认排期
1 天 紧急 主管+运维负责人同时告警
0 天 已过期 立即续签并人工验证

这阵子 AI退更潮 刷屏,一堆套模板的号说停就停。证书管理这种慢病也一样,平时看着没事,一遇事全抓瞎。我们当时盯着监控那条"0天"的告警愣了几秒,太安静了,监控真没接。

五、Step4:闭环从告警到工单到派单

光有告警不够,告警要闭环 :告警 → 工单 → 派单 → 值班接单 → 续签 → 关单。否则告警淹没在群里,含金量 为零。

闭环的实现路径:监控脚本每日扫证书(certbot certificates 或 openssl -checkend),剩余天数命中阈值就推 WebHook 到工单系统,工单系统自动建单 + 派给值班人 + 抄送主管,值班人续签完成后在工单里贴 reload 截图关闭。

六、根因之外:为什么人会忘

讲真的,证书过期不是技术难题,是管理难题。讲真的,很多人买了贵证书、放进了日历、设了手机提醒,到了那天还是忘------因为"提醒"和"动作"之间缺一环。

当然也有人不这么想,觉得把证书交给云厂商自动续签就万事大吉。我偏不这么想,云厂商的自动续签只解决"续"这一段,不解决"告警到派单"的闭环。真正让系统反脆弱的,是告警自动建单、值班闭环、处置沉淀成预案。

我们这次事故后,把证书监控接进了工单系统,提前 30/15/7/1 天分级告警,自动派给值班人。半年没再出过同类问题。

七、给正在排障的你

如果你今天也在排查证书过期,按这 4 步走:

  1. 终端 openssl 确认是不是真的过期(别只信浏览器红锁)
  2. 查 Nginx 配置 + reload 状态(确认新证书有没有被加载)
  3. 看监控是否漏接、阈值是否合理(避免下次再漏)
  4. 把告警接进工单系统做闭环(让告警真的有人接)

主题:SSL/TLS 证书过期 · 故障系列 7 期(继磁盘满/MySQL连接数/Redis连接池/OOM/磁盘IO/CPU飙升 之后)。

关键词:中小企业工单系统哪家好用 / SaaS工单系统哪家性价比高。

热词:AI 退更潮 · 反脆弱 · 含金量。

排查经验请结合自身场景取舍,命令以本机 openssl / nginx 版本为准。

相关推荐
郝开1 小时前
Docker Compose 本地环境搭建:kkFileView
运维·docker·容器
QYR_111 小时前
2032年气相分解设备市场规模达2.25亿美元:VPD向高灵敏度、自动化晶圆污染检测升级
运维·自动化
RisunJan1 小时前
Linux命令-vgchange(修改 LVM 卷组属性)
linux·运维·服务器
Fluxproxy2 小时前
Python请求玄学根治:彻底解决脚本间歇性超时、断连、假死问题
网络·python·安全
北风toto2 小时前
TCP/IP网络基础知识
网络·网络协议·tcp/ip
仓储管理员20252 小时前
不同业务场景下,如何匹配适配的WMS系统?
大数据·运维·云计算·精选
zjxtxdy2 小时前
stm32usart通信接口
网络·笔记
Είναι η κοπέλα2 小时前
游戏窗口自动化点击与防误点设计:模板匹配 + 区域限制 + 强制置顶
运维·游戏·自动化
六年码农2 小时前
2026最新开源 屏译ScreenTranslator 0.4.4 开源 全屏实时翻译教程
运维·人工智能·flutter·开源