证书过期排查¶
现象¶
- 浏览器提示证书过期。
curl提示 certificate has expired。- HTTPS 接口调用失败。
- Nginx、网关或 Ingress 日志出现 TLS 相关错误。
快速判断¶
# 查看站点证书时间
echo | openssl s_client -servername example.com -connect example.com:443 2>/dev/null | openssl x509 -noout -dates
排查命令¶
# 查看本地证书文件
openssl x509 -in /path/to/cert.pem -noout -subject -issuer -dates
# 查看 Nginx 配置中的证书路径
nginx -T | grep -E "ssl_certificate|ssl_certificate_key"
# 检查系统时间
date
timedatectl
Kubernetes:
# 查看 TLS Secret
kubectl get secret <secret> -n <namespace> -o yaml
# 查看 Ingress
kubectl describe ingress <ingress> -n <namespace>
常见原因¶
- 证书确实过期。
- 新证书已签发但服务未 reload。
- Nginx/Ingress 配置仍指向旧证书。
- 系统时间错误。
- 中间证书链不完整。
处理建议¶
- 先确认线上正在使用的证书,而不是只看本地文件。
- 更新证书后执行配置检查。
- Nginx 场景先
nginx -t,再systemctl reload nginx。 - Kubernetes 场景更新 Secret 后确认 Ingress 控制器是否重新加载。
高危提醒¶
- 不要删除旧证书后再排查,先备份。
- 不要在配置未验证时直接重启网关或 Ingress 控制器。