使用 lego 创建“Let's Encrypt”ssl 证书时缺少 CloudFlare 凭据

使用 lego 创建“Let's Encrypt”ssl 证书时缺少 CloudFlare 凭据

我正在尝试生成服务器 SSL 证书。DNS 由 Cloudflare 维护。

lego的帮助建议使用以下语法

[email protected] \
CLOUDFLARE_API_KEY=ABCD1234 \
sudo lego --dns cloudflare --domains about.mycompany.com \
  --email [email protected] --path="/etc/lego" run

但是该命令返回以下错误:

2018/04/19 02:19:45 CloudFlare credentials missing

事实证明,环境变量没有被 lego 捕获。

如果我把上面的内容(减去sudo)放在一个 shell 脚本文件中(比如getcert.sh

[email protected] \
CLOUDFLARE_API_KEY=ABCD1234 \
lego --dns cloudflare --domains about.mycompany.com \
  --email [email protected] --path="/etc/lego" run

然后运行sudo bash ./getcert.shmissing错误消失。

然而它被另一个错误取代了:

 Error presenting token: Zone mycompany.com. not found in CloudFlare for domain _acme-challenge.about.mycompany.com.

如何修复此问题?

答案1

您是否已在 Cloudflare 上获取您域名的 API 密钥?

如果你不知道怎么做,下面是图形教程:

步骤 1:登录后,在 Cloudflare 主页上单击“获取 API 密钥”

在此处输入图片描述

第 2 步:单击“查看”以查看您的 API 密钥(全局或域特定)

在此处输入图片描述

步骤 3:在命令中填写凭证

[email protected]
CLOUDFLARE_API_KEY=yourcloudfalreAPIKey
lego --dns cloudflare --domains yourdomain.com \
  --email [email protected] --path="/etc/lego" run

相关内容