你有没有遇到过这样的情况?早上打开自己负责维护的网站,结果浏览器弹出一个红色警告:"您的连接不是私密连接"。点进去一看,原来是HTTPS证书过期了。别慌,这种情况其实挺常见的,尤其是小站点或者个人博客,容易忘记续签。
先确认是不是真的过期
打开浏览器,按F12调出开发者工具,切换到"安全"(Security)标签页,刷新页面,就能看到当前页面的安全状态。如果提示"证书已过期"或显示过期时间在当前日期之前,那基本可以确定问题出在这儿。
临时解决:用户端绕过(不推荐长期用)
如果你只是临时访问某个网站,比如查资料,可以在浏览器地址栏输入 thisisunsafe(Chrome内核浏览器专用),页面会立刻刷新并加载。注意,这招只适用于你信任的网站,千万别对来路不明的网站这么做。
正经处理:服务器端更新证书
如果是你自己运维的网站,就得登录服务器重新部署有效的SSL证书。大多数情况下,使用Let's Encrypt这类免费证书服务,配合Certbot工具自动续期:
sudo certbot renew
这条命令会检查所有已配置的证书,自动更新那些即将到期的。为了省事,建议在系统定时任务里加上自动续签:
0 3 * * * /usr/bin/certbot renew --quiet
这样每天凌晨3点检查一次,快到期就自动更新,基本不会再出现过期问题。
手动更换证书的情况
有些老系统或特定环境没法用自动工具,就得手动操作。先去证书颁发机构重新申请证书,拿到新的crt和key文件后,替换掉Nginx或Apache配置里原来的路径:
ssl_certificate /etc/nginx/ssl/your_domain.crt;
ssl_certificate_key /etc/nginx/ssl/your_domain.key;
改完重启服务:
sudo systemctl restart nginx
刷新网页,看看锁头图标回来了没。
避免再犯的小技巧
给自己设个日历提醒,证书一般有效期90天,提前一周设置提醒。或者用监控工具,比如UptimeRobot,它能检测证书剩余有效期,并通过邮件或微信通知你。
公司内部系统也别忽视。曾经有个同事忘了测试环境的证书更新,结果财务部门打不开报销系统,闹了一上午。后来他们干脆写了个脚本,每周扫一遍所有域名,把快过期的列出来发邮件。
HTTPS证书过期不是大事,但影响用户体验和信任感。只要养成定期检查的习惯,基本不会踩坑。