SSL 证书没续上,网站突然提示不安全
先别重装证书,打开浏览器证书详情,确认到期时间和覆盖的域名,再从服务器或主机面板看自动续期任务到底跑没跑。多数失败卡在同一处:HTTP-01 验证要外网能访问 80 端口的 /.well-known/acme-challenge/,CDN 或 WAF 挡了这个路径就永远验不过。
先确认是不是真的过期
浏览器里点地址栏左边的锁图标,打开证书详情,看两件事:到期时间是不是已经过,覆盖的域名里有没有顾客实际访问的那个,比如根域和 www 是不是都在。
如果只有某一个人、某一台设备报错,其他人打开正常,那多半不是证书的问题,而是那台设备的系统时间或者证书缓存。团队里多人、多个网络同时报错,才值得按续期失败往下查。
验证这一步最容易卡住
Let's Encrypt 给证书之前,要先验证域名确实归你。目前主流有三种方式,失败原因各不相同:
- HTTP-01:验证方会去访问
http://你的域名/.well-known/acme-challenge/下的一个临时文件。这里要同时满足两个条件——外网能访问 80 端口,并且 CDN 或 WAF 没有把这个路径拦掉或者重定向到别处。开了“总是使用 HTTPS”、强制跳转、或者防火墙只放 443,都会让验证失败。 - DNS-01:验证方查的是
_acme-challenge下的一条 TXT 记录。手动加记录的,常见问题是记录没加对位置、没等生效就点了继续;用脚本自动加的,多半是 DNS 服务商的 API 密钥过期或者权限不够。 - TLS-ALPN-01:走的是 443 端口,如果前面的反向代理或者负载均衡把请求截走了,验证方也拿不到应答。
不确定卡在哪一步,看续期工具的日志最直接,那里会写清楚它实际去请求了哪个地址、返回了什么。用 certbot 的服务器可以跑 certbot renew --dry-run,它在测试环境里跑一遍完整流程,失败会明确报出来。
别一直点重试,签完还要确认真的生效
还有一种情况是配置看起来没问题,但就是一直失败:短时间反复重试,触发了签发方的限流。Let's Encrypt 对每个注册域每 7 天最多签发 50 张证书、每个账号每 3 小时最多 300 个新订单,同名的重复签发也有限制;连续验证失败还会让这个域名逐步被暂停,停的时间可能很长。
所以反复点“重试”是最差的处理方式。排查阶段先切到 staging 环境跑,那边限制宽松得多,确认配置改对了再回到正式环境签一次。
证书签出来了,服务不一定用上。要去两个地方确认:浏览器里再打开证书详情,看到期时间是不是已经更新;服务器上检查实际在处理请求的进程读的是不是新文件。
如果你的网站前面有 CDN 或者负载均衡,要分清证书是在哪一层终止的——边缘一层、回源一层,两边都得能看到新证书才算真的换完。换完以后,根域、www 和所有业务子域都点一遍,别只看首页正常就收工。
Answer feedback
这条回答解决了你的问题吗?
公开票数用于优先完善答案。
还需要进一步协助?
联系李李