
一、先判断是不是证书过期
用户访问你的网站,浏览器弹出"您的连接不是私密连接""此网站不安全",最常见的原因就是服务器上的HTTPS(SSL)证书过期了。证书不是永久的,免费证书通常90天,付费证书1年,到期不换,浏览器就会拒绝信任。
判断方法很简单:浏览器打开网站,点地址栏的锁图标 → 证书 → 查看有效期,或看是否提示NET::ERR_CERT_DATE_INVALID。服务器端也能用命令直接查:
openssl s_client -connect 你的域名:443 -servername 你的域名 2>/dev/null | openssl x509 -noout -dates
会打印证书的 notBefore(生效时间)和 notAfter(过期时间),一眼看出是否到期。
二、证书过期的处理思路
证书过期有两类情况,处理方式不同:
| 情况 | 处理 |
|---|---|
| 只是过期,还能拿到新证书 | 去原证书商的签发机构控制台/续期界面重新签发 |
| 证书商不续了/已退出 | 重新申请一张新证书(免费或付费),重新部署 |
无论哪种,核心动作都是:弄到新证书文件 → 更新服务器配置 → 重载服务。
三、证书从哪里来
如果你的站点是正规备案、需要长期稳定,可以选:
- 免费证书(Let's Encrypt等):成本低,可自动续期,适合不需要审核的站点。但90天需自动续期,若没配自动续期脚本,很容易再次过期——这也是很多小站反复"过期"的原因。
- 付费OV/EV证书:有效期长(1年),能验证企业主体,适合对外经营和金融类站点,浏览器显示更完整。
- 国内厂商(阿里云、腾讯云)也提供免费/付费证书,因合规要求有效性各异,按站点用途选。
四、Nginx/Linux服务器替换证书步骤
大多数企业服务器用Nginx,替换分四步:
- 上传证书文件:把新的 .crt 证书和 .key 私钥上传到服务器(通常放
/etc/ssl/certs或nginx的conf目录)。 - 改nginx配置:在对应的 server 块里指向新文件,一般是:
ssl_certificate /path/to/新证书.crt; ssl_certificate_key /path/to/新私钥.key; - 测试配置:
nginx -t,确认无语法错误。 - 重载:
systemctl reload nginx或nginx -s reload,不中断服务生效。
注意私钥和证书要配对:部署后可用 openssl x509 -noout -modulus 证书.crt | openssl md5 与 openssl rsa -noout -modulus 私钥.key | openssl md5 比对,两者md5一致才代表配对,否则会部署失败。
五、IIS/Windows服务器替换证书步骤
Windows用IIS的服务器:
- 在IIS管理器中双击"服务器证书"→ 导入新证书。
- 在对应网站的"绑定"里,把HTTPS端口443的证书从旧的换成新的。
- 重启该站点或iisreset让配置生效。
Windows服务器同样提醒:确认导入的新证书私钥完整、且绑定不残留旧证书路径。
六、避免再次过期的三个办法
证书过期伤的不只是访问体验——搜索引擎会把"不安全"标记给站点,影响收录与点击。要彻底避免:
- 自动续期:Let's Encrypt配certbot的定时续期任务(cron/Timer),让证书到期前自动换。
- 到期提醒:付费证书在到期前1个月设好邮件/短信提醒;也可写脚本每周检查
notAfter并预警。 - 在域名到期日历上并排标注证书到期日,把续期当成和域名续费一样的大事来管。
一句话:证书过期不可怕,可怕的是"不知道它要过期"。配好自动续期或到期提醒,然后按"新证书→改配置→重载"三步就能在几分钟内恢复,网站立刻回到"安全"状态,收录和用户体验都不会受影响。
延伸阅读:

