数码之家
第二套高阶模板 · 更大气的阅读体验

HTTPS加密证书过期怎么办

发布时间:2025-12-16 03:38:30 阅读:249 次

网站提示证书过期?别急,先确认问题

打开自己维护的网站,浏览器突然弹出“您的连接不是私密连接”或者“此网站的证书已过期”,这种提示对访客来说挺吓人。其实这多半是HTTPS加密证书过期导致的。别慌,先打开浏览器的地址栏,点击小锁图标,查看证书详情,确认是不是真的过期了。

比如你运营一个本地数码评测博客,读者突然反馈打不开,你一查发现证书是上周到期的——这种情况很常见,尤其用的是免费证书,像Let's Encrypt,默认有效期就90天。

临时解决:清除缓存或忽略警告(仅限测试)

如果是你自己在测试环境访问,可以临时在浏览器输入 thisisunsafe(Chrome内核浏览器),页面会立刻刷新加载。但这只是绕过警告,并不能解决问题,千万别让普通用户这么操作。

正式处理:更新或重新申请证书

如果你用的是Nginx或Apache这类服务器,第一步是登录服务器,检查当前证书的存放路径。通常在 /etc/ssl/certs//etc/nginx/ssl/ 下。然后看你是手动部署还是用了自动工具。

如果用Certbot管理Let's Encrypt证书,直接运行命令更新:

sudo certbot renew

这个命令会自动检查所有即将过期的证书并续签。成功后重启Web服务:

sudo systemctl restart nginx

如果没装Certbot,或者域名验证失败,就得重新申请。先生成新的CSR文件:

openssl req -newkey rsa:2048 -nodes -keyout example.com.key -out example.com.csr

然后把CSR内容提交给证书颁发机构,下载新证书,替换旧的crt和key文件。

配置检查别漏掉

换完证书记得检查配置文件里的路径是否正确。Nginx里常见的配置段:

server {
listen 443 ssl;
server_name example.com;
ssl_certificate /etc/nginx/ssl/example.com.crt;
ssl_certificate_key /etc/nginx/ssl/example.com.key;
}

路径写错,哪怕证书最新也会加载失败。改完配置别忘测试语法:

sudo nginx -t

没问题再reload:

sudo systemctl reload nginx

预防下次过期:设个提醒

人总会忘记,建议在日历上设个提醒,提前一周处理。更省心的是启用自动续签。Certbot可以加进cron定时任务:

0 3 * * 1 /usr/bin/certbot renew >> /var/log/letsencrypt/renew.log

每周一凌晨3点检查一次,自动搞定。也可以用微信、钉钉机器人推送通知,结合脚本检测证书剩余有效期。

另外,买商业证书时选一年以上的,虽然贵点,但管理压力小,适合不想折腾的技术小白站长。