You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Certbot修复损坏的Let's Encrypt证书及重新签发方法

解决Certbot配置损坏后的证书重新签发问题

嘿,这种情况我之前帮人处理过,别慌!当letsencrypt/live这类关键文件夹被误删,certbot renew确实会因为找不到关联配置而跳过对应证书,但Certbot不需要什么专门的force-reinstall-if-broken选项,用现有命令就能搞定,分几种场景给你说:

一、重新签发特定域名的证书

如果你清楚要修复的域名,直接用certbot run命令重新申请——它会自动重建缺失的配置文件和目录结构:

sudo certbot run -d example.com -d www.example.com --nginx  # 替换成你的web服务器插件,比如--apache或--standalone
  • 小提示:run是Certbot从头申请证书的核心命令,-d用来指定所有需要包含的域名(包括子域名),后面的服务器插件会帮你自动完成域名验证,然后重建live、archive和renewal目录下的对应文件。

如果之前用的是独立模式(没有部署Nginx/Apache),就换成--standalone,记得先临时关闭占用80/443端口的服务:

sudo certbot run -d example.com --standalone

二、批量修复所有异常证书

要是不确定哪些证书出问题,先看看Certbot记录的所有证书状态:

sudo certbot certificates

这个命令会列出所有已注册的证书,包括域名、有效期和状态。然后对每个状态异常的证书,用上面的run命令逐个重新签发就行。

如果想直接强制更新所有证书(不管是否到期),可以用renew加--force-renewal参数——不过这个操作会强制刷新所有证书,不建议频繁用,但在配置全坏的场景下很实用:

sudo certbot renew --force-renewal

⚠️ 注意:这个命令需要/etc/letsencrypt/renewal/下的原有配置文件还存在,如果这个目录也被删了,还是得用run命令逐个重新申请。

三、连renewal目录也损坏了?

如果/etc/letsencrypt/renewal/下的配置文件全没了,Certbot就完全不知道你之前的证书信息了,这时候只能像第一次申请证书那样操作:

  1. 确认域名解析正常,服务器的80/443端口能被外部访问
  2. 运行certbot run -d your-domain.com --your-server-plugin完成申请和自动配置

几个关键提醒

  • 操作前最好备份/etc/letsencrypt/目录里剩下的内容,避免进一步损坏
  • 如果你用的是Docker版Certbot,命令要调整成容器内执行的形式,比如:
docker run -it --rm -v /etc/letsencrypt:/etc/letsencrypt -v /var/lib/letsencrypt:/var/lib/letsencrypt certbot/certbot run -d example.com --nginx
  • 重新签发完成后,记得重启你的web服务器(比如sudo systemctl restart nginx),让新证书生效

内容的提问来源于stack exchange,提问作者Rudi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 03:58:46