Автоматическое получение сертификатов в Traefik через Clodflare для разных аккаунтов

Автоматическое получение сертификатов в Traefik через Clodflare для разных аккаунтов

Так уже вышло, что даже в последних версиях Traefik 3.x.x нельзя настроить несколько профилей резолверов Let’s Encrypt с dnsChallenge для автоматического получения сертификатов. Но разработчики вышли из ситуации интересным способом.

Как бы вы не пытались настроить несколько резолверов с dnsChallenge на одном эксепляре Traefik, у вас ничего не выйдет. Официально в конфигурации Traefik поддерживается только один резолвер с dnsChallenge. Поэтому, если ваши сервисы работают на доменах из разных аккаунтов CloudFlare или вообще на разных NS-серверах, появляются проблемы. Можно, конечно, сделать и httpChallenge, но придётся открывать порт 80, позволять с ним работать Traefik. Кажется, что это не очень приятно.

Разработчики web-сервера понимают проблему, но решить её предлагают необычным путём, хотя и в соответствии с протоколом ACME DNS-01.

Для этого необходимо выбрать один главный домен, который гарантировано будет направлен на ваш сервер с Traefik, и который полностью настроен в CloudFlare. Именно через этот домен будет происходить верификация dnsChallenge. Именно его настраиваем на обычную работу в Traefik с получением сертификатов, как я описывал это в предыдущем материале по теме.

У остальных доменов будет достаточно добавить CNAME-запись с именем _acme-challenge, которая должна указывать на challenge.example.com, где example.com – это ваш основной домен. Главное, чтобы дополнительные домены были направлены на ваш сервер с Traefik, а какие у них NS-сервера, вообще не имеет значения.