HTTPS 证书过期会发生什么?如何提前预警
知识证书过期不是「页面变丑」这么简单:浏览器会拦下整个站点,App 与服务端调用直接抛错,搜索引擎按不可访问处理。而这类事故几乎全都能靠提前 30 天的告警避免。
过期之后会发生什么
- 浏览器:整页拦截,用户要点两次「高级 → 继续访问」才能进来,实际上等于站点不可用。开了 HSTS 的域名连这个绕过入口都没有,只能等证书修好。
- App 与服务端调用:默认校验证书,直接抛 TLS 握手失败。支付回调、推送、第三方对接这类链路会静默中断,往往比网页先出事。
- 搜索引擎:抓取失败会先降低抓取频率,持续几天开始掉收录。恢复收录比恢复证书慢得多。
- 小程序 / 公众号:平台侧会直接判定接口不可用,部分场景要重新提交审核。
为什么老是有人踩
三个高频原因:
- 自动续期脚本装过就没再管过。续期任务因为磁盘满、权限变更、验证方式失效等原因早就在失败,但没人看日志。
- 证书续期了,但服务没重载。文件是新的,进程内存里还是旧的,要到重启才生效。
- 只盯了主域名。多个子域名、多台机器、CDN 回源用的那张证书,谁都没在盯。
第三条最常见。真正需要监控的不是「域名」,而是「每一个对外提供 TLS 的端点」,包括非 443 端口的服务。
提前预警怎么做
把所有对外的 HTTPS 端点列一张清单,逐个建监控任务,设置到期前 30 天、15 天、3 天各告警一次。三档的用意是:30 天给你排期,15 天提醒你还没做,3 天则是最后通牒。
只设一档提醒的效果通常等于没设——收到的时候人在休假,回来就过期了。
顺带该检查的几项
既然要一个个过证书,把下面几项一起看了,成本几乎为零:
| 检查项 | 为什么 |
|---|---|
| 证书链是否完整 | 缺中间证书时,桌面浏览器正常、部分 Android 和服务端调用失败,最难排查 |
| 域名是否都覆盖 | 带 www 和不带 www、各级子域名是否都在 SAN 里 |
| 协议与套件 | 是否还开着 TLS 1.0/1.1,合规检查会卡这一项 |
| OCSP 装订 | 没开时每个访客都要自己去 CA 查一次,首屏白等几百毫秒 |
可以用 SSL 证书检测 一次看完有效期、颁发者、协议与套件,用 证书链补全 确认链是否完整,用 OCSP 查询 看吊销状态。需要重新签发的话,CSR 在线生成 和 HTTPS 配置生成 能少走几步弯路。
真过期了怎么最快恢复
先换证书恢复服务,再查为什么没续上。手上有备用证书就直接换,没有就用 ACME 签一张免费的顶上——90 天有效期足够你把自动续期修好。换完记得重载服务并用检测工具复验一次,不要只看浏览器缓存里的结果。