Я пытаюсь создать сертификат 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