Есть две A-записи в DNS на
example.myapp.com
, например, 1.1.1.1 и 2.2.2.2 (то есть балансировка через DNS). К DNS-серверу доступа нет.
Как на обоих серверах получить сертификат для
example.myapp.com
через
letsencrypt
? То есть, при вызове на хосте 1.1.1.1:
letsencrypt certonly -a webroot -w /var/www/acme -d example.myapp.com
благодаря балансировке DNS у нас проверяющий бот от letsencrypt может рандомно попасть как на 1.1.1.1, так и на 2.2.2.2, и будет ошибка.
Какие способы решения есть? Я нагуглил про схему с редиректом на одной ноде на другу при обращении на
location /.well-known
:
return 301 http://node2.myapp.com$request_uri;
чтобы типа бот letsencrypt всегда попадал на вторую ноду для проверки. Я сделал так и у меня ничего не получилось, да и я не пойму логики: ну вот средиректится он на второй хост, а дальше то что? как он создаст там временный файл в
/.well-known/acme-challenge/<token>
для подтверждения права владения сервером? Так бы получилось если у letsencrypt была возможность не генерировать случайный файл, а использовать какой-нибудь статический файл для подтверждения, который я положу и он проверит на второй ноде, но такого я что-то не нашел, либо плохо смотрел.