我们有以下设置:多台 Linux 服务器,分别搭载 Ubuntu 20.04 和 22.04。这些服务器上托管着我们客户的网站。我们使用 certbot 来生成或更新证书。作为 Web 服务器,我们使用 nginx。
证书是使用以下命令生成的:
certbot --webroot-path /path/to/webroot -d domain.name
为了更新,将执行以下 cronjob:
certbot -q --post-hook "service nginx reload" renew'
直到去年 12 月,这个设置一直运行良好。但最近,帖子挂钩不再起作用了
service nginx reload
因此 certbot 成功请求证书并将新证书写入存储。但是使用 reload 命令时,nginx 未使用新证书。
我调试了该行为,以下所有命令均未加载新证书:
nginx -t && nginx -s reload
/etc/init.d/nginx reload
systemctl reload nginx
nginx -s reload
nginx -t -q && nginx -s reload
只有硬重启服务才有帮助,然后使用新的证书:
systemctl restart nginx
我找不到有关此行为的任何信息。还有其他管理员遇到同样的问题吗?我不想不断重新启动服务。为了防止续订后停机和中断。