Установка собственного SSL-сертификата для FAST-ноды

Необходимые условия

Эта инструкция предполагает, что:

  • Ваш браузер настроен на использование FAST-ноды в качестве HTTP- и HTTPS-прокси.
  • Ваш браузер уже доверяет SSL-сертификату, который вы собираетесь установить для FAST-ноды.

Требования к сертификату

Для успешного выполнения этой инструкции ваш SSL-сертификат должен быть корневым или промежуточным.

Кроме этого, сертификат и соответствущий ему закрытый ключ должны быть закодированы с помощью PEM. Если ваш сертификат имеет другую кодировку, вы можете воспользоваться любым доступным инструментом с функцией конвертации сертификатов, например, OpenSSL.

Установка SSL-сертификата

Для того, чтобы установить SSL-сертификат для FAST-ноды, выполните следующие действия:

  1. Убедитесь, что у вас уже есть SSL-сертификат, а также закрытый ключ, которым подписан этот сертификат, в формате PEM.

  2. Поместите файл сертификата и файл ключа в одну директорию на хосте Docker. Это нужно для того, чтобы на следующих шагах примонтировать эту директорию в Docker-контейнер с FAST-нодой.

  3. Укажите FAST-ноде на место расположения сертификата и ключа с помощью следующих переменных среды окружения:

    CA_CERT=<внутренний путь до сертификата>
    CA_KEY=<внутренний путь до ключа>
    

    В строках выше замените значения <внутренний путь до сертификата> и <внутренний путь до ключа> на предполагаемый путь до сертификата и до закрытого ключа после монтирования директории с сертификатом и ключом в контейнер Docker.

  4. Разверните Docker-контейнер с FAST-нодой, выполнив следующую команду:

    docker run --name <имя> \ 
    -e WALLARM_API_TOKEN=<токен> \
    -e ALLOWED_HOSTS=<список хостов> \
    -e CA_CERT=<путь к файлу с сертификатом> \
    -e CA_KEY=<путь к файлу с приватным ключом> \
    -v <путь до директории с сертификатом и ключом>:<внутренний путь до директории> \
    -p <порт для публикации>:8080 \
    wallarm/fast
    

    В этой команде задаются:

    • имя контейнера;
    • токен и список хостов целевого приложения с помощью переменных среды окружения WALLARM_API_TOKEN и ALLOWED_HOSTS (испоьзование этой переменной необязательно);
    • расположение файла SSL-сертификата внутри контейнера с помощью переменной CA_CERT;
    • расположение файла с приватным ключом внутри контейнера с помощью переменной CA_KEY;
    • порт для публикации.

    Также директория с файлами сертификата и ключа на хосте Docker <путь до директории с сертификатом и ключом> монтируется в контейнер Docker с помощью опции -v команды docker run, при этом содержимое этой директории становится доступно внутри контейнера по пути <внутренний путь до директории>.

    Обратите внимание

    Пути до файлов сертификата и ключа, заданные с помощью переменных среды окружения CA_CERT и CA_KEY, должны указывать на файлы в директории <внутренний путь до директории с сертификатом>, которую вы задали с помощью параметра -v команды docker run.

  5. На этом шаге SSL-сертификат должен быть успешно установлен. Теперь ваш экземпляр FAST-ноды будет проксировать HTTPS-запросы без сообщений о недоверенных сертификатах.

Пример установки SSL-сертификата

Пусть верно следующее:

  • Файлы с SSL-сертификатом cert.pem и соответствующим закрытым ключом cert.key находятся в директории /home/user/certs хоста Docker, на котором будет запущена FAST-нода.
  • Содержимое директории /home/user/certs будет доступно внутри контейнера с FAST-нодой по следующему пути: /tmp/certs.
  • Используется токен FAST fast_token.
  • Используется следующий список хостов: example.com.
  • FAST-нода будет запущена в контейнере с именем fast-node и ее внутренний порт 8080 будет опубликован в localhost:8080.

Тогда для подключения SSL-сертификата в FAST-ноду требуется выполнить следующую команду:

docker run --name fast-node \
-e WALLARM_API_TOKEN="fast_token" \
-e ALLOWED_HOSTS="example.com" \
-e CA_CERT="/tmp/certs/cert.pem" \
-e CA_KEY="/tmp/certs/cert.key" \
-v /home/user/certs:/tmp/certs \
-p 8080:8080 \
wallarm/fast

results matching ""

    No results matching ""

    results matching ""

      No results matching ""