#docker #nginx #docker-compose #certbot
#docker #nginx #docker-compose #certbot
Вопрос:
Я обслуживаю веб-сайт с использованием nginx через docker compose, используя этот контейнер.
Если я следую инструкциям, контейнер генерирует только SSL-сертификат, который я указываю в nginx .conf
ssl_certificate /etc/letsencrypt/live/www.devenv.ai/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/www.devenv.ai/privkey.pem;
но не для devenv.ai
. Как мне заставить контейнер автоматически создавать сертификат для обоих www.devenv.ai
и devenv.ai
?
Ответ №1:
Вам нужно прочитать объяснение того, как letsencrypt
генерируется сертификат.
Один из подходов заключается в получении подстановочного сертификата для devenv.ai
, но это вопрос для системных администраторов и выходит за рамки stackowerflow, поэтому вы можете исследовать суперпользователя, ошибку сервера или спросить Ubunty.
Если вы рассматриваете их как два отдельных домена, то для получения отдельных сертификатов (по одному для каждого домена) вам необходимо, чтобы ваш агент прослушивал HTTPS
порт (443) на обоих доменах, которые вы попытаетесь получить, чтобы он был сертифицирован.
Это означает, что вам необходимо:
- Установите DNS для обоих имен так, чтобы они указывали на один и тот же IP-адрес. Использование псевдонима для
www.devenv.ai
указания наdevenv.ai
было бы хорошим подходом. - Создайте 2 конфигурации сервера в
nginx
контейнере, для каждого домена отдельно. С указанным вами контейнером проще всего иметь 2 отдельных файла конфигурации вconf.d
. Таким образом, у вас будет 2 домена, работающих на nginx, и вы можете решить либо сохранить их оба, либо перенаправить один из них на другой.
Это может быть распространено на несколько доменов, просто добавив файлы конфигурации.