某天打开网站,浏览器突然红字警告”您的连接不是私密连接”,地址栏那把小锁也变红了,用户死活进不来——八成是证书过期了。这事挺烦人,偏偏常在你想休息、或者正忙别的事时跳出来。
证书过期本身不难,基本就是”先确认、再续期”两件事。下面几个问题覆盖了最常见的情况,按顺序看基本能解决。
Q1:怎么判断是证书过期,还是别的问题?
别急着重签,先确认症状:
- 浏览器报
NET::ERR_CERT_DATE_INVALID或”证书已过期/尚未生效” → 基本就是证书时间问题; - 命令行一查便知:
openssl s_client -servername 你的域名 -connect 你的域名:443 2>/dev/null | openssl x509 -noout -dates,直接看notBefore/notAfter; - 在线工具(SSL Labs、各大 SSL 检测站)或浏览器开发者工具的 Security 面板,也能看到起止时间。
Q2:证书已经过期、网站打不开了,怎么应急?
应急就一个原则:先恢复访问。
- 立刻续期或重签,这是恢复访问最快的办法;
- 临时兜底(仅应急、别长期用):先把强制 HTTPS 跳转关掉让站点用 HTTP 顶着,或者临时自签一张——但用户体验和安全都会降级,只是争取时间;
- 如果证书是 CA 或云服务商签发的,确认是不是他们那边出了批量问题,必要时找支持。
Q3:用的是 Let’s Encrypt 免费证书,怎么自动续期?
Let’s Encrypt 证书只有 90 天有效期,靠人记不靠谱,必须交给自动化:
- 用
certbot的话,续期命令就是certbot renew,它会自动检查哪些快到期了才续; - 配个定时任务,比如
0 3 * * * certbot renew --quiet,每天凌晨跑一次,临近到期自动续; - 宝塔、各类面板一般自带”自动续期”开关,确认它是开着的;
- 重点:续期后很多 Web 服务要 reload 才生效,用 certbot 的
--deploy-hook或renew-hook在续期成功后自动nginx -s reload,否则证书换了网站还在用旧的。
Q4:证书放在哪、怎么部署到 Nginx?
先搞清楚两样东西放哪:
- Nginx 配置里
ssl_certificate指向 fullchain.pem(证书+中间证书),ssl_certificate_key指向 privkey.pem; - 改完先
nginx -t测试配置,再systemctl reload nginx平滑重载; - 签发方式常用 certbot 的
webroot(需站点可访问)或standalone(临时占 80 端口)模式。
Q5:用了 CDN(Cloudflare 等),证书该怎么管?
用了 CDN 之后,证书其实是两套:
- 浏览器 → CDN 边缘,用的是 CDN 的证书(Cloudflare 免费提供,自动管,基本不用你操心);
- CDN → 你的源站,用的是源站证书(除非你开 Flexible 模式走明文,但不安全)。
Q6:怎么避免以后再次”突然过期”?
治本靠监控,不靠记性:
- 设到期提醒:证书到期前 14 / 7 / 3 天告警,工具如 UptimeRobot、宝塔告警、监控宝、或 Prometheus + Alertmanager 都能做;
- 建个台账:把每个域名的证书到期日、签发商、部署位置记下来,别纯靠脑记;
- 能用 ACME 协议自动续期的就全自动,人工环节越少越不容易漏。
Q7:证书报错,但不是过期,还有什么常见坑?
- 证书链不全:用 fullchain,别只放单张证书;
- 域名不匹配:SAN 里没包含当前访问域名,重新签发把正确域名加进去;
- CA 不被信任 / 自签未导入:换受信任的 CA(Let’s Encrypt、ZeroSSL、商业 DV/OV 都行);
- 混合内容:页面里还有
http://的图片、脚本,浏览器照样报不安全,全改成 https。
最后说两句
证书过期这事,预防比事后救火轻松得多。把”自动续期”和”到期告警”这两件事做扎实,基本就能告别半夜被证书叫醒。真要出了事,照着上面的顺序:先确认是不是过期、立刻续期恢复访问、再用 ACME 自动续期把人解放出来。
如果你在 fenij.com 上也被证书折腾过,欢迎留言聊聊你的翻车现场。
#HTTPS#SSL证书#站长干货#Let’sEncrypt
常见问题(FAQ)
证书过期对网站 SEO 和排名有影响吗?
有影响。证书过期后浏览器直接拦截访问,搜索引擎爬虫也无法抓取,索引和排名会短期下滑。及时续期恢复访问后通常能回升,但反复过期会损害站点信任度,建议配合自动续期与到期监控。
免费证书(Let’s Encrypt)和付费证书怎么选?
个人站、博客、普通企业站用免费 DV 证书(如 Let’s Encrypt、ZeroSSL)已足够;电商、金融、政府或注重品牌信任的官网,建议付费 OV/EV 证书,提供企业身份验证与赔付保障,地址栏信任度更高。
证书刚续上为什么浏览器还提示过期?
多半是 Web 服务没 reload(如 nginx -s reload)、CDN 边缘节点缓存未刷新,或只换了源站证书忘了边缘证书。证书文件更新后必须让 Web 服务重新加载,否则站点仍在用旧证书。
一个 SSL 证书能绑定多个域名吗?
可以。用 SAN 多域名证书(一张证书包含多个域名)或通配符证书(*.example.com 覆盖所有子域);Let’s Encrypt 同样支持这两种方式,适合多站点或子域较多的场景。