Перейти к содержанию

Обзор развертывания Free Domain Certbot на сервере

Предварительные требования и базовые условия

  • Операционная система: Сервер на базе Linux, способный запускать Docker и Docker Compose.

  • Привилегии: Требуется доступ с правами root или sudo для управления службами, настройки межсетевого экрана (firewall) и монтирования томов (volumes).

  • Домен: Для FQDN требуется доменное имя, назначенное в зоне hostkey.in.

  • Порты: На сервере должны быть открыты порты 80 и 443 для обработки HTTP и HTTPS-трафика соответственно.

FQDN финальной панели

Приложение доступно по следующему формату полного доменного имени (FQDN): nginx-certbot<Server ID>.hostkey.in:443

Примечание: Замените <Server ID> на уникальный идентификатор вашего экземпляра сервера.

Структура файлов и директорий

Для развертывания используется следующая структура директорий для конфигурации и данных:

Директория/Том Назначение
./user_conf.d Пользовательские конфигурации блоков сервера Nginx.
nginx_secrets Внешний том для хранения файлов сертификатов Let's Encrypt.
/etc/letsencrypt/live/<fqdn>/ Расположение файлов сертификатов во время выполнения (fullchain.pem, privkey.pem, chain.pem).
/etc/letsencrypt/dhparams/ Расположение параметров Diffie-Hellman.

Процесс установки приложения

Развертывание приложения осуществляется с помощью Docker Compose. Установка базируется на контейнере образа jonasal/nginx-certbot.

  • Образ контейнера: jonasal/nginx-certbot:latest

  • Политика перезапуска: unless-stopped

Развертывание использует файл docker-compose.yml (или compose.yml) для оркестрации службы. Служба загружает последнюю версию образа и настраивает необходимые переменные окружения и монтирование томов.

Контейнеры Docker и их развертывание

Система разворачивает единственную службу Nginx, настроенную для завершения соединений SSL (SSL termination) и обновления сертификатов.

Определение службы:

  • Имя: nginx

  • Образ: jonasal/nginx-certbot:latest

  • Политика перезапуска: unless-stopped

  • Переменные окружения:

    • CERTBOT_EMAIL: Установлено значение hkadm@hostkey.com
  • Отображение портов (Port Mapping):

    • Порт хоста 80 отображается на порт контейнера 80

    • Порт хоста 443 отображается на порт контейнера 443

  • Тома (Volumes):

    • nginx_secrets смонтирован в /etc/letsencrypt (Внешний том)

    • ./user_conf.d смонтирован в /etc/nginx/user_conf.d

  • Файл окружения: Служба загружает конфигурацию из файла ./nginx-certbot.env.

Прокси-серверы

Контейнер Nginx выступает в роли обратного прокси-сервера (reverse proxy) и терминатора SSL. Он настроен на прослушивание портов 80 и 443 для IPv4 и IPv6.

Настройка SSL:

  • Сертификат: Загружается из /etc/letsencrypt/live/<fqdn>/fullchain.pem

  • Закрытый ключ: Загружается из /etc/letsencrypt/live/<fqdn>/privkey.pem

  • Цепочка доверия (Chain): Загружается из /etc/letsencrypt/live/<fqdn>/chain.pem

  • DH-параметры: Загружаются из /etc/letsencrypt/dhparams/dhparam.pem

Настройки блока сервера:

  • Имя сервера (Server Name): Настроено динамически для соответствия FQDN (nginx-certbot<Server ID>.hostkey.in).

  • Ответ: Конфигурация по умолчанию возвращает код статуса 200 с сообщением: Let's Encrypt certificate successfully installed!

  • Тип содержимого (Content-Type): Установлен в text/plain.

Настройки прав доступа

При развертывании предполагается, что файл docker-compose.yml и директория user_conf.d принадлежат пользователю с достаточными привилегиями для запуска служб Docker. Том nginx_secrets управляется как внешний том Docker, абстрагируя базовые права доступа файловой системы, необходимые для работы с сертификатами.

Расположение файлов конфигурации и данных

  • Файл Compose: Находится в корне директории развертывания (например, ./compose.yml или ./docker-compose.yml).

  • Переменные окружения: Хранятся в файле ./nginx-certbot.env.

  • Конфигурация Nginx: Пользовательские конфигурации сервера хранятся в локальной директории ./user_conf.d, которая монтируется в контейнер.

  • Сертификаты: Хранятся во внешнем томе Docker с именем nginx_secrets.

Доступные порты для подключения

На хост-сервере для клиентских подключений открыты следующие порты:

Порт Протокол Служба
80 TCP HTTP (Запрос проверки Let's Encrypt)
443 TCP HTTPS (Защищенный веб-трафик)

Запуск, остановка и обновление

Управление службами выполняется с помощью команд Docker Compose.

  • Запуск службы:

    docker compose up -d
    

  • Остановка службы:

    docker compose down
    

  • Обновление службы: Для загрузки последнего образа и перезапуска контейнера:

    docker compose pull nginx
    docker compose up -d
    

question_mark
Я могу вам чем-то помочь?
question_mark
ИИ Помощник ×