上一篇 下一篇 分享链接 返回 返回顶部

网站证书自动续期失败?手动续签完整操作指南

发布人: 发布时间:20小时前 阅读量:10

证书自动续期失败的常见原因

网站SSL证书到期前,系统通常会通过cron或systemd定时任务自动续期。但在实际运维中,自动续期可能因网络波动、端口未开放、DNS解析异常或ACME客户端版本过旧等原因失败,导致证书过期风险。以下为手动续签的完整操作步骤。

手动续签前的环境检查

1. 确认ACME客户端与证书路径

以Let's Encrypt证书为例,执行以下命令确认当前证书位置与客户端类型:

  1. 检查Certbot版本:certbot --version
  2. 查看证书列表:certbot certificates,记录证书名称与域名。
  3. 确认Web服务类型:Nginx或Apache,以便选择正确的认证方式。

2. 检查域名解析与端口连通性

自动续期基于HTTP-01或DNS-01验证。手动续签前请确保:

  • 域名DNS解析记录指向服务器公网IP,且TTL已生效。
  • 80端口(HTTP验证)或443端口(TLS验证)可从公网访问,防火墙或安全组未屏蔽。

手动续签操作步骤

步骤一:停止Web服务(如使用独立认证)

若使用standalone模式,需先释放80端口:

sudo systemctl stop nginxsudo systemctl stop apache2

步骤二:执行手动续签命令

使用Certbot执行强制续签(无论是否到期):

sudo certbot renew --force-renewal --preferred-challenges http

若使用DNS验证,可改用:

sudo certbot certonly --manual --preferred-challenges dns -d example.com

步骤三:重新加载Web服务

续签成功后,重新启动Web服务并验证证书:

sudo systemctl start nginxsudo systemctl start apache2

sudo nginx -s reload(若已启动)

步骤四:验证证书有效期

  • 检查证书文件:sudo openssl x509 -in /etc/letsencrypt/live/example.com/cert.pem -noout -dates
  • 在线检测:通过浏览器访问域名,点击锁形图标查看证书到期时间,或使用第三方工具(如SSL Labs)进行一次性检测。

续签失败后的排查建议

  • 日志检查:查看/var/log/letsencrypt/letsencrypt.log中的错误信息,常见错误为“Invalid response from http://...”或“Timeout during connect”。
  • 网络代理:若服务器位于代理或NAT后,需确保ACME客户端发出的请求能正确返回服务器公网IP。
  • 证书链更新:若重启服务后浏览器提示“证书链不完整”,可运行sudo certbot renew --force-renewal --deploy-hook "systemctl reload nginx"并检查服务器配置中是否引用了fullchain.pem。

结语

证书自动续期并非绝对可靠,建议监控证书剩余有效期(如不足30天时告警)。手动续签是每个运维人员必须掌握的应急技能,操作完成后务必确认服务正常,并定期更新ACME客户端至最新版本。

目录结构
全文
企业微信 企业微信
微信公众号 微信公众号
服务热线: 400-790-1688
电子邮箱: 3310008520@qq.com