У меня есть образ докера, который создает контейнеры для моего веб-приложения. Детали веб-приложения вообще не имеют значения. Важно то, что каждый раз контейнер может использовать другой адрес (server1., Server2 и т.д.), и я хочу создать ключи Let's encrypt для каждого из них. Для этого я использую авторизацию веб-службы, поэтому certbot
создает несколько файлов, к которым затем обращается lets encrypt
сервер, чтобы проверить, являюсь ли я владельцем домена. После тестирования он сгенерирует ключи, которые можно использовать.
На данный момент у меня есть nginx
файл конфигурации с двумя server
части, одна для http
и один для https. Я просто комментирую https
часть, запустите сервер, выполните certbot
действие, раскомментируйте https
раздел и перезапустите контейнер.
Это немного громоздко, сложно автоматизировать, есть ли способ изменить nginx
конфигурация, чтобы он не вылетал из-за отсутствия доступных сертификатов SSL? А потом после перезапуска заработало автоматически?
Или, может быть, есть еще более простой способ справиться с моим сценарием?
Шаг 1. Поместите две серверные части в разные файлы и включите их из nginx.conf, используя подстановочный знак. Например. включить config.d / *. conf.
Шаг 2: Переименуйте файл сервера SSL в * .conf.disabled.
Шаг 3. В сценарии точки входа проверьте, существует ли файл сертификата. В этом случае переименуйте файл .conf.disabled в .conf.
Альтернатива: в большинстве случаев вы также можете просто использовать certbot для получения сертификата в сценарии точки входа.