下载教程博客更新日志 功能常见问题 免费下载

Let's Encrypt证书90天到期如何续期?完整教程

Let’s Encrypt 的 90 天机制与到期时间查询

Let’s Encrypt 签发的免费证书统一只有 90 天有效期。这并非为了逼用户付费,而是安全上的刻意设计:更短的有效期意味着即使私钥泄露,攻击者能利用的时间窗口也更短,同时强制站点频繁轮换证书。对站长来说,真正要管理的是”到期前完成续期”这个动作,而不是证书本身是否昂贵。

到期时间可以从两个地方查询。其一,浏览器:访问站点后点击地址栏的锁形图标,展开”连接是安全的”详情,其中会显示证书的有效期起止时间。其二,命令行:用 openssl 直接向服务器发起 TLS 握手并读取证书日期,示例:

echo | openssl s_client -connect example.com:443 -servername example.com 2>/dev/null | openssl x509 -noout -dates

输出中的 notAfter 就是证书过期时间,据此可推算剩余天数。把 example.com 换成你自己的域名即可。

手动续期步骤

手动续期的本质,是用原域名和原验证方式重新申请一次,拿到一张新的 90 天证书。流程与首次申请几乎一致:在工具里输入域名,选择 HTTP 或 DNS 验证并完成验证,下载或写入新证书,然后替换服务器上的证书文件。关键点在于”验证方式要与当前环境匹配”——例如服务器 80 端口可达就用 HTTP 验证,无法对外暴露则用 DNS 验证。手动续期适合偶尔救急,不适合长期依赖,因为 90 天一次的重复劳动极易遗漏。

自动续期配置

要避免过期,更稳妥的是自动续期。图形化工具的做法很直接:ToSSL 会在证书到期前 30 天自动发起续期,续期成功后自动替换证书并给出系统通知,站长几乎无需干预。脚本方案的思路则是把 ACME 客户端的续期命令交给定时任务周期执行,如 certbot 的 renew 配合 systemd timer、acme.sh 安装时自动写入的 cron。两者的共同点是:一旦配置成功,续期就是后台动作,人只在失败时被提醒。更完整的方案对比可看 SSL 证书自动续期三种方案对比

续期后重载服务

新证书写入磁盘后,Web 服务并不会立刻生效,因为它还在内存里使用旧证书。你需要触发一次重载,让进程重新读取证书文件。Nginx 通常执行 nginx -s reload,Apache 通常执行 systemctl reload apache2,具体命令随发行版略有差异。重载是平滑的,不会中断现有连接。重载后建议再用 openssl 命令或浏览器确认返回的已是新证书。

续期失败排查

失败原因典型表现处理方向
80 端口不可达HTTP 验证超时放行端口或改用 DNS 验证
域名解析变更验证请求落到旧服务器修正 A/AAAA 记录
DNS API 密钥过期DNS 验证报鉴权失败更新服务商密钥
触发速率限制短时间内申请被拒等待限制窗口,勿反复重试
客户端未运行到期前无任何动作确认进程/开机自启正常

DNS 验证相关的更多排查细节,可参考站内的 DNS 验证问题排查文档

常见问答

  • 续期会重新验证域名吗?会。每次续期都等于一次新的申请,仍要完成 ACME 验证,这是协议要求。
  • 续期后旧证书要手动删除吗?不必。服务器只引用当前配置的证书路径,旧文件可保留,等确认新证书正常后再清理。
  • 90 天能不能延长?不能,这是 Let’s Encrypt 的固定策略,只能通过持续续期来滚动维持。
  • 到期前多久续期合适?图形化工具通常提前 30 天,脚本方案建议提前 15 天以上,给失败重试留出缓冲。

若想了解证书已过期后的处理,可参考 SSL 证书过期恢复指南;自动续期的具体配置可看 自动续期文档

需要申请免费 SSL 证书?

ToSSL 是一款免费的SSL证书申请与自动续期工具:输入域名即可申请 Let’s Encrypt 证书, 支持 HTTP / DNS 验证与通配符证书,到期前 30 天自动续期,Windows / macOS / Linux 均可使用。

免费下载 ToSSL 查看使用教程

相关阅读

SSL证书自动续期怎么实现?三种主流方案对比

SSL证书自动续期怎么实现?对比手动续期、certbot与acme.sh脚本自动续期、图形化工具自动续期三种方案,附配置步骤与续期失败常见原因排查。

SSL证书过期怎么办?影响、检测与恢复全指南

SSL证书过期怎么办?浏览器警告的影响、证书到期时间检测方法、紧急恢复步骤与预防机制,用自动续期彻底避免证书过期问题。