Назад | Перейти на главную страницу

Учетные данные CloudFlare отсутствуют при использовании lego для создания ssl-сертификата Let's Encrypt

Я пытаюсь создать сертификат ssl сервера. DNS поддерживается Cloudflare.

В legoсправка предлагает следующий синтаксис

CLOUDFLARE_EMAIL=anthony@mycompany.com \
CLOUDFLARE_API_KEY=ABCD1234 \
sudo lego --dns cloudflare --domains about.mycompany.com \
  --email anthony@mycompany.com --path="/etc/lego" run

Однако команда возвращает следующую ошибку:

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

Оказывается, переменные среды не захватываются лего.

Если я поставлю выше (минус sudo) в файле сценария оболочки (говорит getcert.sh)

CLOUDFLARE_EMAIL=anthony@mycompany.com \
CLOUDFLARE_API_KEY=ABCD1234 \
lego --dns cloudflare --domains about.mycompany.com \
  --email anthony@mycompany.com --path="/etc/lego" run

затем беги sudo bash ./getcert.sh, то missing ошибка исчезла.

Однако его заменяет другая ошибка:

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

Как исправить эту проблему?

Получили ли вы свой API-ключ для своего домена на Cloudflare?

Если вы не знаете, как это сделать, вот графическое руководство:

Шаг 1. Нажмите «Получить ключ API» на главной странице Cloudflare после входа в систему.

Шаг 2. Нажмите «Просмотр», чтобы просмотреть свой ключ API (глобальный или для домена).

Шаг 3. Введите учетные данные в команду.

CLOUDFLARE_EMAIL=youremail@example.com
CLOUDFLARE_API_KEY=yourcloudfalreAPIKey
lego --dns cloudflare --domains yourdomain.com \
  --email youremail@example.com --path="/etc/lego" run