Skip to content

前言


典型现象与影响

  • 浏览器报错:(例如 NET::ERR_CERT_DATE_INVALID、连接不安全等,按实际截图补充)
  • 客户端/SDK:(例如 curl、移动端、内网服务互相调用时的表现)
  • 业务影响:(用户无法访问、Webhook 失败、健康检查误报等)

如何确认「已过期 / 即将过期」

在线或本机快速查看

bash
# 查看证书有效期(将 example.com 换成你的域名)
echo | openssl s_client -servername example.com -connect example.com:443 2>/dev/null \
  | openssl x509 -noout -dates -subject -issuer

(可补充:浏览器「证书详情」、云平台证书控制台、监控告警里的字段说明。)

需要核对的信息

  • 域名与 SAN 是否覆盖当前访问名
  • 颁发者(自签 / 商业 CA / Let's Encrypt 等)
  • Not Before / Not After 与服务器时区、NTP 是否一致

根因归类(便于选对续期方式)

情况常见原因处理方向
例:单台 Nginx 静态证书文件文件到期未替换重新签发 → 替换文件 → reload
例:K8s Ingress / 网关Secret 未更新或控制器未拉新更新 Secret / 检查控制器日志
例:云负载均衡控制台证书过期在 CLB/ALB 上绑定新证书
(按需增行)

续期与替换:操作步骤

按你的实际栈只保留一节写细,其余可删或链到别文。

方案 A:(例如 Let's Encrypt / ACME + certbot)

  1. (前置条件:80/443、DNS、机器权限)
  2. (签发或 renew 命令)
  3. (证书路径、服务 reload 命令)

方案 B:(例如云厂商证书 + 一键部署到 CDN/LB)

  1. (在控制台申请/上传):重新申请,申请时会生成新的txt,域名解析那里也要同步个性;下载新的证书,放到nginx中指定的目录;要重启nginx;
  2. (绑定到监听器/域名)
  3. (传播与缓存:CDN、边缘节点)

方案 C:(例如内网 PKI / 自签)

  1. (CA 与叶子证书签发流程)
  2. (信任链安装到客户端或服务)
  3. (轮换策略)

验证

  • curl -vI https://你的域名 或 openssl 再次查看 notAfter
  • 浏览器隐私模式访问,确认无证书警告
  • (若有)灰度节点、多地域、CDN 各做一次抽样

回滚与应急

  • 旧证书文件是否仍保留、如何一键切回
  • 若新证书链不完整导致部分客户端失败,如何快速换回

预防:监控与自动化

  • 到期前 N 天 告警(监控项、阈值、通知渠道)
  • 自动续期任务(cron / systemd timer / 云函数)及 失败告警
  • 变更记录:谁、何时、换了哪张证、关联哪些入口

附录:本次变更记录(可选)

项目内容
域名 / 入口
原到期日
新到期日
涉及组件(Nginx / Ingress / CLB / CDN …)
操作人 / 时间

参考

  • (官方文档链接)
  • (团队内部 runbook 链接)

本站总访问