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

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

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

Для успешного развертывания приложения Nginx Certbot на целевом сервере должны быть выполнены следующие требования:

  • Операционная система: Дистрибутив Linux, совместимый с Docker Engine.

  • Привилегии: Доступ root или учетная запись с правами sudo для управления службами Docker и правилами межсетевого экрана (firewall).

  • Настройка домена: Действующее доменное имя, указывающее на публичный IP-адрес сервера.

  • Сетевые порты: Порты 80 и 443 должны быть открыты и доступны из интернета для валидации SSL-сертификатов и обработки HTTPS-трафика.

FQDN конечной панели

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

Где <Server ID> заменяется на конкретный идентификатор, назначенный экземпляру сервера.

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

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

  • /etc/letsencrypt: Хранит SSL-сертификаты и закрытые ключи, управляемые Certbot.

  • ./user_conf.d: Содержит пользовательские конфигурации блоков сервера Nginx.

  • ./nginx-certbot.env: Файл переменных окружения для службы Nginx.

  • ./compose.yml: Файл определения Docker Compose для оркестрации служб.

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

Приложение развертывается с использованием Docker Compose. Процесс развертывания включает следующие шаги:

  1. Убедитесь, что Docker и Docker Compose установлены на сервере.

  2. Создайте необходимую структуру каталогов для приложения.

  3. Разместите файлы compose.yml и nginx-certbot.env в каталоге развертывания.

  4. Создайте внешний том (volume) nginx_secrets, необходимый для хранения сертификатов.

  5. Выполните команду docker compose up -d для запуска служб.

Для развертывания используется образ контейнера jonasal/nginx-certbot:latest.

Права доступа и безопасность

В развертывании реализованы следующие меры безопасности:

  • Правила межсетевого экрана должны разрешать входящий трафик на портах 80 и 443.

  • Контейнер Nginx работает с политикой перезапуска restart: unless-stopped для обеспечения доступности.

  • SSL-сертификаты хранятся во внешнем томе Docker для сохранения данных при перезапуске контейнеров.

  • Приложение возвращает текстовый ответ, подтверждающий успешную установку сертификата.

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

Развертывание состоит из одного контейнера Nginx, управляемого через Docker Compose. Конфигурация контейнера включает:

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

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

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

  • CERTBOT_EMAIL: Установлено значение hkadm@hostkey.com

  • Порты:

  • Порт хоста 80 сопоставлен с портом контейнера 80.

  • Порт хоста 443 сопоставлен с портом контейнера 443.

  • Томы (Volumes):

  • nginx_secrets примонтирован в /etc/letsencrypt.

  • Локальный каталог ./user_conf.d примонтирован в /etc/nginx/user_conf.d.

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

Контейнер Nginx действует как обратный прокси-сервер и точка терминации SSL. Он настроен для:

  • Прослушивания порта 443 для соединений IPv4 и IPv6.

  • Обслуживания домена nginx-certbot<Server ID>.hostkey.in.

  • Загрузки SSL-сертификатов из каталога /etc/letsencrypt/live/.

  • Возврата кода состояния 200 с сообщением об успехе при успешной установке сертификата.

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

Права доступа к файлам и каталогам управляются контейнером Docker и хост-системой:

  • Том nginx_secrets должен быть доступен контейнеру Nginx для чтения и записи сертификатов.

  • Каталог user_conf.d на хосте должен быть доступен для чтения контейнером для загрузки пользовательских конфигураций.

  • Файлы compose.yml и nginx-certbot.env должны принадлежать пользователю, выполняющему команды Docker.

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

Файлы конфигурации и данные находятся по следующим путям:

  • Файл Docker Compose: ./compose.yml

  • Переменные окружения: ./nginx-certbot.env

  • Пользовательская конфигурация Nginx: ./user_conf.d/user.conf

  • SSL-сертификаты: /etc/letsencrypt/live/nginx-certbot<Server ID>.hostkey.in/

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

Следующие порты доступны для внешнего подключения:

  • Порт 80: HTTP-трафик для валидации вызова ACME от Let's Encrypt.

  • Порт 443: HTTPS-трафик для безопасного веб-доступа.

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

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

  • Запустить службу: docker compose up -d

  • Остановить службу: docker compose down

  • Обновить образ контейнера: docker compose pull, за которым следует docker compose up -d

  • Просмотреть логи: docker compose logs -f

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