
Пытаюсь развернуть с помощью Ansible (Ansible не имеет особого отношения к вопросу, а просто дает полную картину) конфигурацию Certbot для получения подстановочных сертификатов для кластера серверов Nginx, которые будут сбалансированы по нагрузке.кардиостимулятор-коросинхронизатор.
Чего я добился на данный момент:
- Использование плагинов DNS (nsoneиганди) я могу получить свои wildcard-сертификаты на всех моих серверах Nginx
- Все мои Nginx запланированы для обновления сертификатов и обновления симуляции с
sudo certbot renew --dry-run
нормально работающими - Оба Nginx запущены и работают, и они «показывают» сертификат SSL, предоставленный Let's Encrypt.
- Я заметил, что каждый сервер Nginx показывает, что он использует SSL-сертификат (их хэш отличается), 241a808949dac993ea865a22ec92c3e3952cd6b8 для Nginx1 и 82defeb9337d880f8d5380831c6527fb02c50a9b для Nginx2, и это меня немного беспокоит.
У меня есть вопросы:
- Возникает ли проблема, если сертификаты на каждом сервере разные, или это так задумано?
- Возникнут ли у меня проблемы, когда график вступит в силу и мои сертификаты будут продлены?
- Используя DNS-вызов, мне все равно нужно копировать сертификаты между серверами вместо использования Certbot, как я это делаю (на каждом сервере)?
Я нашел этот ответhttps://serverfault.com/a/907911/606126но я не совсем уверен, что это отвечает на мои вопросы.
решение1
Если вы обновите сертификат на каждом хосте, каждый получит отдельный сертификат.
Недостатком этого подхода является то, что Let's Encrypt может ограничить скорость, если у вас слишком много серверов.
Другой вариант — запустить Certbot только на одном хосте, а затем вручную распространить сертификат на остальные хосты.
Самый простой подход — использовать Certbot post-валидационные хуки. Вы создадите скрипт, который будет распространять сертификаты и настраивать/перезапускать ваши серверы после обновления сертификата.
https://certbot.eff.org/docs/using.html#pre-and-post-validation-hooks