我在 Nginx 上通过 let's encrypt 更新证书时遇到问题。我收到以下错误。我遗漏了什么?
[root] # /usr/local/letsencrypt/certbot-auto renew --quiet --renew-hook --dry-run
usage:
certbot-auto [SUBCOMMAND] [options] [-d DOMAIN] [-d DOMAIN] ...
Certbot can obtain and install HTTPS/TLS/SSL certificates. By default,
it will attempt to use a webserver both for obtaining and installing the
certificate.
certbot: error: argument --renew-hook: expected one argument
答案1
嗯,错误信息很容易解释:
certbot:错误:参数 --renew-hook:预期一个参数
您使用了参数,但没有指定参数,在本例中是需要调用的脚本。
引用文档:
renew 命令包括在证书续订之前或之后运行命令或脚本的钩子。例如,如果您使用独立插件获得了一个证书,则可能需要在续订之前停止 Web 服务器,以便独立服务器可以绑定到必要的端口,然后在插件完成后重新启动它。
[...]
--pre-hook
并--post-hook hooks
在每次续订尝试之前和之后运行。如果您希望钩子仅在成功续订后运行,请使用--renew-hook
以下命令:
certbot renew --renew-hook /path/to/renew-hook-script
因此,如果您不需要额外的脚本,只需省略此参数。
答案2
这是由于 certbot 中的错误造成的。您需要按照以下 URL 中所述对其进行修补。这将在新版本中得到纠正。