每三个月,我的 Let's Encrypt 证书就会过期,我的客户就会收到无效的 https 证书。
所以我最近放置了以下 cron 任务:
@weekly certbot renew --quiet && service nginx reload
据我了解,当certbot renew
成功更新证书时,它会返回成功状态(exit(0)),因此&&
会遵循,然后重新加载 nginx。
是的,但是它不起作用。最近我的服务器再次显示证书已过期,所以我肯定误解了什么,或者我的 cron 任务不好。
你能告诉我路径吗?:)
答案1
更好的方法是使用--renew-hook
可以调用脚本的方法。这也是--no-self-upgrade
自动续订的好选择,此选项可防止续订期间的更新,这可能会破坏某些东西
cron 记录可以
certbot renew --quiet --no-self-upgrade --renew-hook /path/to/hook.sh
hook.sh
#!/bin/sh
set -e
nginx -t -q && nginx -s reload
exit 0
此脚本仅在续订操作发生时调用,而不是每周调用
完整解释在手册页中或在文档中