certbot:错误:无法识别的参数:--dns-digitalocean-credentials

certbot:错误:无法识别的参数:--dns-digitalocean-credentials

尝试执行此命令

sudo certbot certonly --dns-digitalocean --dns-digitalocean-credentials ~/.secrets/digitalocean.ini -d "*.example.com" --preferred-challenges dns --server https://acme-v02.api.letsencrypt.org/directory

我收到此错误:certbot:错误:无法识别的参数:--dns-digitalocean-credentials

我的 Web 服务器运行的操作系统是:Ubuntu 16.04.3 LTS

certbot --version输出:certbot 0.31.0

并且命令“--dns-digitalocean-credentials”中的破折号输入正确。

还安装了 DNS 插件:

python3-certbot-dns-digitalocean/xenial 0.23.0-2ubuntu0ppa1~ubuntu16.04.1 

幫助解決問題。

答案1

即使使用 Certbot 版本 0.40.0(Ubuntu 20.04 的默认 deb 包) ,我也收到了unrecognized arguments: --dns-digitalocean-credentials错误。手册页有描述,--dns-digitalocean-credentials但无法识别。

解决方案是通过 snap 安装:

sudo apt purge -y certbot
sudo snap install --classic certbot
sudo snap set certbot trust-plugin-with-root=ok
sudo snap install certbot-dns-digitalocean

截至本文发布时,已生成 Certbot 1.9.0,它可以很好地生成和安装我的通配符 TLS 证书。

您没有问,但这是我使用的完整 Certbot 命令:

sudo certbot run --domain example.com --domain '*.example.com' --authenticator dns-digitalocean --installer apache --dns-digitalocean-credentials /root/.certbot.token --dns-digitalocean-propagation-seconds 60 --agree-tos --keep-until-expiring --redirect --hsts --uir --email [email protected] --no-eff-email

答案2

我认为问题在于自动 DNS 证书更新方法仅在 certbot 0.31.0 之后的版本中引入。

当前版本是 1.3.0-5,但尚未进入您的 Ubuntu 版本。我不确定,但我知道它尚未进入我使用的 Debian Buster。

我换成了acme.sh我发现这至少与 certbot 一样容易实现,而且更加透明。你只需要export将您的 DigitalOcean 密钥放入变量中跑步前acme.sh

相关内容