我正在使用certbot --webroot插件和certbot renew来更新证书,这是可行的,但是看起来httpd正在缓存证书,并且没有“看到”它已经更新。
是否有信号让httpd重新加载证书?
附注:我不喜欢重新启动httpd以避免停机。
发布于 2016-08-11 19:14:05
要让httpd注意到新的证书,您需要请求它执行"优美重启“。从医生那里:
USR1或优美信号使父进程通知子进程在其当前请求后退出(如果其子进程没有提供任何服务,则立即退出)。父文件重新读取其配置文件并重新打开其日志文件。当每个子节点死掉时,父级将替换为新一代配置中的一个子级,该子代将立即开始处理新请求。
如此优雅的重新启动不会导致停机。
为了让letsencrypt/certbot触发一个优雅的重新启动,使用--post-hook参数。如果尝试进行证书更新,此参数将运行一次命令。来自文档:
命令在尝试获取/续订证书后在shell中运行。可用于部署更新的证书,或重新启动由-预钩子停止的任何服务器.只有在尝试获取/续订证书时才会运行此操作。(缺省:无)
所以你想要的命令是
certbot renew --post-hook "apachectl graceful"或者如果从一个cron作业跑掉
certbot renew --quiet --post-hook "apachectl graceful"(感谢@RustyX在这个问题上的帮助)
https://serverfault.com/questions/795731
复制相似问题