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

Certbot证书更新成功但站点不安全,如何避免每次更新都重启Nginx

解决Certbot证书更新后需手动重启Nginx的问题

问题根因

Certbot自动更新证书文件后,Nginx不会主动加载新的证书文件,仍会沿用旧证书的文件句柄提供服务,因此浏览器会识别到证书未更新、显示站点不安全,只有重启/重载Nginx后才会加载新证书。

配置方法

通过配置Certbot的自动部署钩子,即可实现证书更新后自动触发Nginx平滑重载,无需手动操作:

全局配置(适用于所有证书均由Nginx托管的场景)

编辑Certbot全局配置文件/etc/letsencrypt/cli.ini,在文件末尾添加以下配置:

deploy-hook = systemctl reload nginx

单证书配置(仅针对特定域名证书生效)

编辑对应域名的证书更新配置文件/etc/letsencrypt/renewal/xyz.com.conf,在[renewalparams]配置块下添加以下内容:

deploy_hook = systemctl reload nginx

验证配置是否生效

执行模拟证书更新命令,验证钩子是否能正常执行:

sudo certbot renew --dry-run

如果命令执行过程中没有报错,且输出显示会触发Nginx重载操作,说明配置正常。

注意事项

  • 优先使用systemctl reload nginx而非restart,reload属于平滑重载,不会中断现有用户连接,更适合生产环境使用
  • Ubuntu 18.04下Certbot默认会配置自动更新的定时任务,你可以通过systemctl list-timers certbot.timer命令确认定时任务是否正常运行
  • 配置的钩子命令默认由root用户执行,无需额外调整权限

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 11:24:08