最直接的处理方式是立即将 Certbot 客户端升级到发行版仓库提供的最新稳定版本,或者使用官方推荐的安装渠道重新安装,以确保证书续签流程符合当前的 ACME 协议标准。
先说结论:旧版本客户端无法通过 Let's Encrypt 的安全验证,必须升级才能恢复自动续签。
- 先确认:运行版本检查命令,判断当前客户端是否过旧。
- 先处理:根据操作系统类型,选择包管理器或官方脚本进行升级。
- 再验证:执行干运行测试,确保续签命令不再报错。
1. 确认当前环境与版本
升级前必须先确认安装渠道,不同渠道升级命令完全不同。混合安装会导致命令冲突。
# 查看当前 Certbot 版本
certbot `--version`
# 检查安装路径(判断是 snap 还是 apt 安装)
which certbot如果路径包含 /snap/,说明是 Snap 版本;如果包含 /usr/bin/ 且系统是 Ubuntu,可能是 apt 版本。
2. 备份现有配置(关键步骤)
升级过程可能重置权限或修改配置结构,务必先备份。
sudo cp -r /etc/letsencrypt /etc/letsencrypt.bak_$(date +%F)3. 分渠道执行升级
根据上一步确认的渠道和 Web 服务器类型选择对应命令。
Ubuntu/Debian (APT 渠道)
sudo apt update
# Nginx 用户
sudo apt install `--only-upgrade` certbot python3-certbot-nginx
# Apache 用户
sudo apt install `--only-upgrade` certbot python3-certbot-apacheUbuntu (Snap 渠道)
sudo snap refresh certbotCentOS/RHEL (YUM/DNF)
sudo yum update certbot
# 如需插件,通常需启用 EPEL 源
sudo yum install python3-certbot-nginx4. 验证升级结果
升级完成后,不要直接等待到期,应立即手动触发测试。
sudo certbot renew `--dry-run`如果输出 Simulation success,说明通信正常。
5. 常见报错与解决
- 错误:Plugin not found / 插件未找到
原因:升级主程序后插件未同步升级。
解决:根据 Web 服务器类型安装对应插件包(见第 3 步)。 - 错误:Unauthorized / 403
原因:ACME 协议版本过旧或被 CA 拒绝。
解决:确认 certbot 版本已更新至最新,旧版本不再支持 ACME v1。 - 错误:Timeout / 连接超时
原因:防火墙拦截了验证请求。
解决:检查安全组是否放行 80 端口,确认出站流量未被拦截。
6. 检查自动续签任务
sudo systemctl status certbot.timer
# 或者检查 crontab
crontab -l | grep certbot参考来源
- Let's Encrypt 官方博客 - 关于协议变更和废弃的公告:https://letsencrypt.org/
- Certbot 官方文档 - 安装与升级指南:https://certbot.eff.org/
- Electronic Frontier Foundation (EFF) - Certbot 项目主页:https://github.com/certbot/certbot