rus*_*tyx 7 httpd apache-2.4 lets-encrypt
我正在使用certbot --webroot插件并certbot renew更新证书,它确实有效,但看起来httpd正在缓存证书并且没有“看到”它已被更新。
是否有httpd重新加载证书的信号?
ps 我不想重启httpd以避免停机。
要httpd注意到新证书,您需要请求它进行“正常重启”。从文档:
USR1 或优雅信号使父进程建议子进程在当前请求后退出(或者如果他们没有提供任何服务则立即退出)。父级重新读取其配置文件并重新打开其日志文件。当每个子节点死亡时,父节点会用新一代配置中的子节点替换它,它会立即开始处理新请求。
因此,正常重启不会导致停机。
为了让 letencrypt/certbot 触发正常重启,请使用该--post-hook参数。如果尝试更新任何证书,此参数将运行一次命令。从文档:
尝试获取/更新证书后在 shell 中运行的命令。可用于部署更新的证书,或重新启动任何被 --pre-hook 停止的服务器。这仅在尝试获取/更新证书时运行。(默认:无)
所以你想要的命令是
certbot renew --post-hook "apachectl graceful"
Run Code Online (Sandbox Code Playgroud)
或者如果从 cron 作业运行
certbot renew --quiet --post-hook "apachectl graceful"
Run Code Online (Sandbox Code Playgroud)
(感谢@RustyX 对此答案的帮助)
| 归档时间: |
|
| 查看次数: |
9815 次 |
| 最近记录: |