SSL证书过期不会导致Nginx崩溃,但浏览器会强制拦截连接并显示“您的连接不是私密连接”等错误;必须通过openssl验证有效期、核对配置路径与文件权限、执行nginx -t和nginx -s reload重载,并排查CDN、多节点同步及证书链完整性。

SSL 证书过期不会让 Nginx 崩溃,但会让浏览器和客户端直接拦截连接,表现为“您的连接不是私密连接”“NET::ERR_CERT_DATE_INVALID”等错误。排查重点不是找 Nginx 故障,而是确认它是否正在使用已过期的证书,并验证新证书是否真正生效。
快速确认证书是否真的过期
别依赖浏览器提示,用命令直接查:
- 执行 openssl x509 -in /path/to/fullchain.pem -noout -dates,看
notAfter时间是否早于当前时间(2026年6月15日) - 核对 Nginx 配置中
ssl_certificate和ssl_certificate_key指向的路径是否正确,文件是否存在:ls -l /etc/nginx/ssl/ - 检查证书文件权限:Nginx 主进程(通常是 root)需能读取,证书文件建议为
644,属主可为root:root
验证 Nginx 是否加载了新证书
覆盖证书文件后,Nginx 不会自动读取——必须重载配置,且要确认重载成功:
- 先测试语法:sudo nginx -t,避免因路径错误或格式问题导致重载失败
- 再执行重载:sudo nginx -s reload(不是 restart,更安全)
- 验证实际加载的证书:用 curl -vI https://yoursite.com 2>&1 | grep "subject:" 或访问 SSL Labs 测试页,查看证书有效期和颁发者
检查高可用与代理链中的干扰因素
单节点正常不代表全链路可用:
- 如果是多节点 Nginx 集群,确认所有节点证书已同步更新,不能只在一台上操作
- 前端如有 CDN、WAF 或负载均衡器,它们可能缓存旧证书;需登录对应平台刷新 SSL 配置或强制重新部署
- 若 Nginx 是反向代理 WSS(WebSocket over TLS),还需检查
proxy_ssl_verify是否意外开启——这会校验后端证书,但通常不相关;真正影响用户的是 Nginx 自身对外的证书
移动端与特殊客户端连不上?重点查证书链和协议兼容性
部分 Android/iOS 设备对证书链更敏感,容易因细节失效:
- 确保
ssl_certificate指向的是 fullchain.pem(含服务器证书 + 中间 CA),而非仅cert.pem - 检查
ssl_protocols是否包含 TLSv1.2 和 TLSv1.3;禁用 TLSv1.0/1.1 - 避免使用老旧加密套件;推荐配置如:
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256


















