Обзор развертывания Nginx с Certbot на сервере¶
Контейнеры Docker и их запуск¶
Приложение развертывается с использованием контейнера Docker. Для управления контейнером используется файл конфигурации compose.yml.
Основные параметры контейнера: - Образ: jonasal/nginx-certbot:latest - Политика перезапуска: unless-stopped - Порт 80: перенаправляется на порт 80 контейнера - Порт 443: перенаправляется на порт 443 контейнера
Контейнер использует следующие тома для хранения данных: - nginx_secrets: внешний том, монтируемый в /etc/letsencrypt для хранения сертификатов Let's Encrypt. - ./user_conf.d: локальная директория, монтируемая в /etc/nginx/user_conf.d для пользовательских конфигураций.
Переменные окружения загружаются из файла ./nginx-certbot.env. Также задана переменная CERTBOT_EMAIL со значением hkadm@hostkey.com.
Прокси серверы¶
В качестве прокси-сервера используется контейнер Nginx с поддержкой Certbot для автоматического получения и обновления SSL-сертификатов.
Конфигурация сервера Nginx находится в файле user.conf и включает следующие настройки: - Прослушивание портов 443 для IPv4 и IPv6 с использованием SSL. - Имя сервера формируется динамически на основе префикса, идентификатора сервера и зоны домена. - Путь к полному сертификату: /etc/letsencrypt/live/{домен}/fullchain.pem. - Путь к ключу сертификата: /etc/letsencrypt/live/{домен}/privkey.pem. - Путь к цепочке доверенных сертификатов: /etc/letsencrypt/live/{домен}/chain.pem. - Путь к параметру Diffie-Hellman: /etc/letsencrypt/dhparams/dhparam.pem.
Сервер возвращает ответ со статусом 200 и текстом подтверждения успешной установки сертификата. Тип содержимого ответа установлен как text/plain.
Структура файлов и каталогов¶
Структура каталогов на хосте включает: - Директория user_conf.d: содержит пользовательские конфигурационные файлы Nginx. - Файл nginx-certbot.env: содержит переменные окружения для контейнера. - Файл compose.yml: конфигурация Docker Compose для запуска контейнеров. - Внешний том nginx_secrets: используется для хранения данных Let's Encrypt.
Права доступа и безопасность¶
Контейнер Nginx работает с привилегиями, необходимыми для прослушивания портов 80 и 443. Доступ к портам осуществляется через стандартные протоколы HTTP и HTTPS.
Сертификаты и ключи хранятся в защищенной директории /etc/letsencrypt внутри контейнера, которая монтируется из внешнего тома nginx_secrets.
Запуск, остановка и обновление¶
Для запуска, остановки и обновления контейнера используются стандартные команды Docker Compose. Конфигурация контейнера определяется в файле compose.yml.
Команды управления: - Запуск контейнера: docker compose up -d - Остановка контейнера: docker compose down - Обновление образа и перезапуск: docker compose pull и docker compose up -d