Перейти к основному содержимому
Версия: Новая

Развёртывание сервера SALT.BOX

В данном разделе описаны процессы подготовки, установки и запуска SALT.BOX на сервере с доступом к интернету.

Рассмотрены варианты развёртывания:

Дополнительные действия, необходимые для развёртывания SALT.BOX на сервере без доступа к интернету, описаны в разделе Развёртывание сервера SALT.BOX (без доступа к интернету).

предупреждение

Если Вы выполняете развёртывание сервера SALT.BOX на виртуальной машине, убедитесь, что процессор виртуальной машины поддерживает расширения набора команд avx и avx2. Данные расширения требуются для работы MongoDB версии 5.0 и выше.

Проверить наличие поддержки можно следующей командой:

cat /proc/cpuinfo

В выводе команды в блоке flags должны быть указаны флаги avx и avx2.


предупреждение

Для развёртывания рабочей версии продукта рекомендуется установить режим обработки перерасхода памяти с помощью команд:

sudo sh -c "echo 'vm.overcommit_memory=1' > /etc/sysctl.d/saltbox.conf"
sudo sysctl -p /etc/sysctl.d/saltbox.conf

Значение vm.overcommit_memory=1 является требованием Redis.

Особенности развёртывания сервера SALT.BOX в Astra Linux SE​

Для установки сервера SALT.BOX в ОС Astra Linux SE 1.7, 1.8 необходимо выполнить дополнительные настройки службы docker .

При работе с Docker в Astra Linux SE 1.7.10 и 1.8.6 Вы можете столкнуться с проблемой при импорте контейнеров или загрузке образов.
Команды могут прерваться из-за обнаруженной уязвимости.

Причина возникновения проблемы

Проблема возникает, когда Astra Linux обнаруживает уязвимости в содержимом контейнера.
В Astra SE 1.7 Update 4 был добавлен сканер уязвимостей Openscap, проверяющий уязвимости по базе oval-db.
Сканер включен по умолчанию и запрещает дальнейшее использование контейнера при обнаружении уязвимости.

Пропуск проверки уязвимостей

Вы можете обойти проверку уязвимостей, добавив соответствующую настройку в конфигурационный файл Docker.

  1. Откройте или создайте файл /etc/docker/daemon.json.

  2. Добавьте в файл следующую строку:

    { "astra-sec-level": 6 }

    Можно быстро добавить строку командой:

    sudo cat << EOF > /etc/docker/daemon.json
    { "astra-sec-level" : 6 }
    EOF
  3. Перезапустите Docker:

    sudo systemctl restart docker

Быстрый старт SALT.BOX​

Утилита установки install_saltbox.py​

Утилита установки install_saltbox.py позволяет загрузить необходимые файлы, установить и запустить систему SALT.BOX.

Получите файл install_saltbox.py.

ВНИМАНИЕ

Для загрузки файла install_saltbox.py выберите ветку master или последний релиз — в зависимости от того, где файл имеет наиболее позднюю дату изменения.

Запустите файл в каталоге, где вы предпочитаете хранить файлы, связанные с Docker-проектом SALT.BOX Compose.
Используйте флаг -h или --help для просмотра опций утилиты установки.

Синтаксис утилиты install_saltbox.py​

install_saltbox.py [-h] [--list-addons] [--addons ADDONS] [--admin ADMIN]   [--compose-ref {RELEASE,PRERELEASE,dev}] [--cleanup]   [--explicit-secret EXPLICIT_SECRET] [--git]   [--host HOST] [--host-is-name] [--port PORT]   [-n] [--no-cache] [--no-progress] [-s] [-u] [-v]   [OVERRIDE ...]

АргументыОписание
Позиционные аргументы
  OVERRIDEДополнительные значения для включения в dotenv в формате NAME='VAL'.
Опции
  -h, --helpПоказать это справочное сообщение и выйти.
  --list-addonsВывести список доступных модулей дополнения в формате JSON и выйти.
  --addons ADDONSУстановить официальные модули дополнения SALT.BOX:
FileBrowser, Inventory, Metric, Scheduler, Migrations,
FREE (значение по умолчанию), ALL, NONE.
ВНИМАНИЕ! НЕКОТОРЫЕ ДОПОЛНЕНИЯ ЯВЛЯЮТСЯ ПРОПРИЕТАРНЫМИ, ДЛЯ ЗАГРУЗКИ ТРЕБУЕТСЯ АВТОРИЗАЦИЯ ПО ТОКЕНУ.
Может быть указано несколько значений.
  --admin ADMINЛогин администратора SALT.BOX.
  --compose-ref {RELEASE,PRERELEASE,dev}Ссылка на Git для получения SALT.BOX Compose:
RELEASE (значение по умолчанию) — для поиска последнего тега релиза,
PRERELEASE — для поиска тега последнего релиза или предварительного релиза (более поздний из них по дате публикации),
dev — для ветки разработки.
  --cleanupУдаление возможно существующих экземпляров SALT.BOX с тем же COMPOSE_PROJECT_NAME.
ВНИМАНИЕ! ВОЗМОЖНА ПОТЕРЯ ДАННЫХ!
  --explicit-secret EXPLICIT_SECRETУстановить значение секрета явно в формате NAME=VALUE,
используйте saltbox_admin_password=VALUE, чтобы установить пароль администратора SALT.BOX.
Может быть указано несколько значений.
  --gitКлонировать git-репозитории вместо загрузки архивов
  --host HOSTИмя хоста или реальный адрес для привязки сервера, по умолчанию saltbox.local.
  --host-is-nameПринудительное использование SSL-сертификата для DNS-имени, даже если host выглядит как IP-адрес.
  --port PORTПорт для обслуживания HTTPS-соединений, по умолчанию 443.
  -n, --non-interactiveНе запрашивать ввод параметров, использовать значения по умолчанию.
  --no-cacheУдалить ранее загруженные архивы репозиториев.
  --no-progressНе отображать ход загрузки.
  -s, --skip-checkНе проверять установку Docker перед запуском.
  -u, --skip-runВыполнить только подготовку (без установки SALT.BOX).
  -v, --verboseВывод дополнительной информации.
ВНИМАНИЕ

Если в опции --addons ADDONS указаны проприетарные модули или значение ALL (установить все доступные модули), необходимо записать в переменную среды SALTBOX_INSTALL_TOKEN токен авторизации для загрузки проприетарных модулей.

Токен авторизации Вы можете получить при приобретении соответствующей лицензии.

Подробные условия доступны на сайте продукта.

После завершения загрузки и настройки утилита install_saltbox.py запустит скрипт автоматической установки update_and_run.sh.

Алгоритм работы утилиты install_saltbox.py​

На Рис. 1 показан алгоритм работы утилиты установки install_saltbox.py.

Рисунок 1. Алгоритм работы утилиты установки install_saltbox.py

Пример использования утилиты install_saltbox.py​

Строка запуска утилиты, рассматриваемая в данном примере:

./install_saltbox.py --addons ALL --compose-ref=RELEASE --cleanup --explicit-secret=saltbox_admin_password=k2BzQ2sMCi3g --host=176.109.74.142 --no-progress --non-interactive --port=443 --admin master

Пояснение заданных опций:

  • --compose-ref=RELEASE
    будет установлена версия SALT.BOX с тегом RELEASE

  • --addons ALL
    будут установлены все дополнительные модули, поставляемые в дистрибутиве SALT.BOX

  • --cleanup
    будут удалены существующие экземпляры системы с тем же COMPOSE_PROJECT_NAME, если они существуют (имя проекта по умолчанию — saltbox — задано в файле base.env)

  • --explicit-secret=saltbox_admin_password=k2BzQ2sMCi3g
    пароль администратора системы

  • --host=176.109.74.142
    IP-адрес хоста, на котором будет доступен веб-интерфейс системы

  • --no-progress
    загрузка будет проходить в «тихом» режиме, без отображения статуса

  • --non-interactive
    при установке системы будет использоваться явно заданные аргументы утилиты и значения по умолчанию, опущенные при вызове параметры запрашиваться не будут

  • --port=443
    веб-интерфейс системы будет доступен на порту 443/TCP по протоколу HTTPS

  • --admin master
    учётная запись администратора системы будет иметь имя master

В загруженном утилитой install_saltbox.py файле base.env будет определён набор Docker-образов с тегом последнего релиза:

./base.env
CORE_AUTOTESTS_TAG=vX.Y.Z
CORE_IMAGE_TAG=vX.Y.Z
FRONTEND_IMAGE_TAG=vX.Y.Z
GATEWAY_IMAGE_TAG=vX.Y.Z
SALT_MASTER_IMAGE_TAG=vX.Y.Z
KEYCLOAK_IMAGE_TAG=vX.Y.Z
KEYCLOAK_INIT_IMAGE_TAG=vX.Y.Z
MAKE_CERTS_IMAGE_TAG=vX.Y.Z
MONGODB_IMAGE_TAG=vX.Y.Z
NGINX_IMAGE_TAG=vX.Y.Z
OPA_IMAGE_TAG=vX.Y.Z
POSTGRES_IMAGE_TAG=vX.Y.Z
PROXY_IMAGE_TAG=vX.Y.Z
RABBITMQ_IMAGE_TAG=vX.Y.Z
REDIS_IMAGE_TAG=vX.Y.Z
SSHFS_IMAGE_TAG=vX.Y.Z
AUDIT_IMAGE_TAG=vX.Y.Z

где vX.Y.Z — номер версии программного комплекса SALT.BOX.

Кроме того, утилита install_saltbox.py сформирует файл override.env следующего вида:

./override.env
SALTBOX_ADMIN_USERNAME='master'
WEB_SERVER_OUTER_SOCKET='176.109.74.142:443'
WEB_SERVER_SSL_ALT_NAMES_IP='127.0.0.1,176.109.74.142'
_UPDATE_AND_RUN_EXTRA_ENV_FILES='../saltbox-inventory-compose/.env,../saltbox-filebrowser-compose/.env,../saltbox-metric-compose/.env,../saltbox-scheduler-compose/.env'

После этого будет запущен скрипт автоматической установки update_and_run.sh, который в случае успешной установки и запуска проекта выдаст сообщение:

   ####################################################
########################################################
## ##
## Salt.Box Compose will start soon ##
## ##
## URL: https://176.109.74.142 ##
## Basic administrator: master ##
## Password: k2BzQ2sMCi3g ##
## ##
########################################################
####################################################

Скрипт автоматической установки update_and_run.sh​

к сведению

Скрипт автоматической установки update_and_run.sh может быть запущен одним из двух способов:

  1. Автоматически — утилитой install_saltbox.py по завершении загрузки файлов требуемых проектов и настройки конфигурационных файлов.
  2. Вручную — если Вы самостоятельно клонировали репозитории с компонентами системы и сформировали файл override.env либо запустили утилиту install_saltbox.py с опцией --skip-run (только подготовка, без установки SALT.BOX).

Находясь в каталоге проекта, запустите скрипт автоматической установки:

sudo ./bin/update_and_run.sh

Скрипт автоматической установки:

  • с помощью утилиты ./bin/make_secrets.py создаёт набор файлов с секретами в подкаталоге проекта ./secrets/;
  • выполняет обновление образов;
  • выводит учетные данные администратора по умолчанию;
  • с помощью скрипта ./bin/sb-compose.sh создаёт и запускает Docker compose-проект SALT.BOX.

Используйте файл override.env для переопределения значений по умолчанию из файла base.env.
Для просмотра опций скрипта автоматической установки используйте флаг -h или --help.

Синтаксис скрипта update_and_run.sh​

./bin/update_and_run.sh [-h|--help] [-d|--detach] [--drop-data]   [-f|--force] [-l|--login] [-n|--no-pull]   [--no-git-pull] [--no-image-pull] [--no-progress]   [--no-root] [--only-update] [-w|--watch]   [SERVICE]...

АргументыОписание
Позиционные аргументы
  SERVICE
...
Опции
  -h, --helpПоказать это справочное сообщение и выйти.
  -d, --detachОтключить Docker Compose после запуска.
  --drop-dataУдалить все тома перед запуском.
  -f, --forceПерезаписывать без подтверждения.
  -l, --loginПопытаться войти в реестр Docker.
  -n, --no-pullИзбегать обновления текущего репозитория и образов из Интернета.
  --no-git-pullНе загружать текущий репозиторий, даже если это возможно.
  --no-image-pullНе загружать более новые образы из реестра Docker.
  --no-progressСкрыть индикаторы выполнения.
  --no-rootНе использовать sudo, запускать от имени текущего пользователя.
  --only-updateОбновить образы Docker и выйти.
  -w, --watchВключить отслеживание Docker Compose для разработки.

Последний флаг --only-* переопределяет предыдущий.

Пошаговая установка SALT.BOX​

к сведению

Пошаговая установка SALT.BOX предназначена для специалистов, занимающихся разработкой и администрированием системы. Данный способ установки рекомендуется использовать только в случае возникновения трудностей при автоматической установке.

Загрузка проекта​

Загрузите проект saltbox-compose актуального релиза SALT.BOX по ссылке: https://dev.saltbox.pro/saltbox/saltbox-compose/-/releases и разархивируйте его в каталог Вашей рабочей директории.

Подготовка к установке​

  1. Войдите в каталог проекта.

  2. В корневом каталоге проекта создайте файл override.env.
    По необходимости в файле override.env переопределите переменные файла base.env, если это требуется пользователю для корректной работы SALT.BOX в его сетевой среде

    к сведению

    Далее приведены описания некоторых переменных файла base.env, переопределение которых может потребоваться пользователю для корректной работы SALT.BOX в его сетевой среде.

    В большинстве случаев все переменные в файле base.env, поставляемом в составе релиза, корректно настроены для случая, когда SALT.BOX устанавливается на localhost.

    Переопределение переменных необходимо также для установки дополнительных модулей одновременно с развёртыванием базовой части системы — Salt.Config.Box.
    Инструкцию по установке дополнительных модулей смотрите в разделе Подключение дополнительных модулей.

    1. Если Вы планируете развёртывание SALT.BOX на виртуальной машине или на хосте, отличном от localhost, то в файле override.env должны быть переопределены переменные, значением которых по умолчанию является 'localhost':

      Порт хост-системы, которому будет сопоставлен порт контейнера Docker, обслуживающего веб-интерфейс SALT.BOX, например:

      WEB_SERVER_PORT=4443

      Переменной WEB_SERVER_OUTER_SOCKET должен быть присвоен сетевой адрес или сетевое имя хоста, на котором веб-интерфейс SALT.BOX будет доступен пользователю. Опционально может быть указано также номер порта:

      WEB_SERVER_OUTER_SOCKET=<HOST> | <HOST>:<PORT>
      примечание

      Если развёртывание SALT.BOX производится на виртуальной машине, переменной WEB_SERVER_OUTER_SOCKET должен быть присвоен сетевой адрес её интерфейса в хостовой системе.

      Если доступ к SALT.BOX будет осуществляться без использования обратного прокси-сервера, то в WEB_SERVER_OUTER_SOCKET должен быть указан тот же порт, что и в WEB_SERVER_PORT. Если порт не указан явно, будет использовано значение по умолчанию для протокола (80/TCP для HTTP, 443/TCP для HTTPS).

    2. Сокет сервера Redis (для подключения к нему контроллера SALT.BOX).
      Для подключения внешних контроллеров следует указать 0.0.0.0:6379 (все сетевые интерфейсы) либо указать адрес одного из сетевых интерфейсов:

      REDIS_SALT_EXPOSE_SOCKET=<IP_ADDRESS>:6379
    3. Теги образов, с которых осуществляется развёртывание SALT.BOX:

      CORE_AUTOTESTS_TAG=vX.Y.Z
      CORE_IMAGE_TAG=vX.Y.Z
      FRONTEND_IMAGE_TAG=vX.Y.Z
      GATEWAY_IMAGE_TAG=vX.Y.Z
      SALT_MASTER_IMAGE_TAG=vX.Y.Z
      KEYCLOAK_IMAGE_TAG=vX.Y.Z
      KEYCLOAK_INIT_IMAGE_TAG=vX.Y.Z
      MAKE_CERTS_IMAGE_TAG=vX.Y.Z
      MONGODB_IMAGE_TAG=vX.Y.Z
      NGINX_IMAGE_TAG=vX.Y.Z
      OPA_IMAGE_TAG=vX.Y.Z
      POSTGRES_IMAGE_TAG=vX.Y.Z
      PROXY_IMAGE_TAG=vX.Y.Z
      RABBITMQ_IMAGE_TAG=vX.Y.Z
      REDIS_IMAGE_TAG=vX.Y.Z
      SSHFS_IMAGE_TAG=vX.Y.Z
      AUDIT_IMAGE_TAG=vX.Y.Z

      где vX.Y.Z — номер версии программного комплекса SALT.BOX.

    4. Время ожидания остановки контейнера до принудительной остановки:

      STOP_GRACE_PERIOD=5s

      Уменьшение данного значения может ускорить остановку, но повышает риски потери вре́менных данных.

    5. Уровень журналирования контейнера главного контроллера SALT.BOX:

      SALT_MASTER_LOG_LEVEL='warning'
      SALT_MINION_LOG_LEVEL='warning'

      Обозначения уровней журналирования:

      УровеньЧисловое значениеОписание
      critical50Критические ошибки
      error40Ошибки
      warning30Предупреждения
      info20Важная информация, предоставляемая приложением при нормальном выполнении
      debug10Информация для диагностики проблем и устранения неполадок
      all0Все события
      осторожно

      Любой уровень журнала ниже уровня "info" НЕБЕЗОПАСЕН и может регистрировать конфиденциальные данные.
      Подробную информацию об уровнях журналирования смотрите в документации проекта SaltStack.

    6. Пути к каталогам в файловой системе хоста Docker, в которых будут храниться конфигурации для агентов.
      Каталоги могут быть перенесены, например, на примонтированное хранилище:

      SSHFS_STORAGE_PATH='./_sshfs-storage/'

      SSHFS-хранилище предназначено для хранения шаблонов и некоторых других типов файлов, используемых при работе SALT.BOX.

Подключение дополнительных модулей​

ВНИМАНИЕ

Дополнительные модули, расширяющие функциональные возможности программного комплекса SALT.BOX, могут распространяться по проприетарной лицензии.
Для их загрузки необходимо получить токен авторизации и выполнить вход в реестр Docker:

docker login registry.saltbox.pro

Подробные условия доступны на сайте продукта.

Модуль мониторинга​

  1. Находясь в каталоге проекта saltbox-compose, в его родительский каталог клонируйте репозиторий saltbox-metric-compose:

    git clone git@dev.saltbox.pro:saltbox/saltbox-metric-compose.git ../saltbox-metric-compose

    Перейдите в ветку с тегом, совпадающим с версией проекта saltbox-compose:

    cd ../saltbox-metric-compose && git checkout vX.Y.Z

    где vX.Y.Z — номер версии программного комплекса SALT.BOX.

  2. Если необходимо, переопределите переменные, установленные в файле .env модуля мониторинга, в файле override.env проекта saltbox-compose.

    ВНИМАНИЕ

    Если Вы клонировали репозиторий saltbox-metric-compose в каталог, отличный от ../saltbox-metric-compose, в файле .env модуля переопределите переменную пути:

    METRIC_OUTER_PATH='<фактический относительный путь к каталогу>'
  3. В файл override.env проекта saltbox-compose добавьте переменную:

    _UPDATE_AND_RUN_EXTRA_ENV_FILES='../saltbox-metric-compose/.env'
  4. Проверьте, установлена ли переменная, разрешающая использование модуля мониторинга:

    SALTBOX_MODULE_METRIC_ON=true

Модуль «Инвентаризация»​

  1. Находясь в каталоге проекта saltbox-compose, в его родительский каталог клонируйте репозиторий saltbox-inventory-compose

    git clone git@dev.saltbox.pro:saltbox/saltbox-inventory-compose.git ../saltbox-inventory-compose

    Перейдите в ветку с тегом, совпадающим с версией проекта saltbox-compose:

    cd ../saltbox-inventory-compose && git checkout vX.Y.Z

    где vX.Y.Z — номер версии программного комплекса SALT.BOX.

  2. Если необходимо, переопределите переменные, установленные в файле .env модуля «Инвентаризация», в файле override.env проекта saltbox-compose.

    ВНИМАНИЕ

    Если Вы клонировали репозиторий saltbox-inventory-compose в каталог, отличный от ../saltbox-inventory-compose, в файле .env модуля переопределите переменную пути:

    INVENTORY_COMPOSE_DIR='<фактический относительный путь к каталогу>'
  3. В файл override.env проекта saltbox-compose добавьте переменную:

    _UPDATE_AND_RUN_EXTRA_ENV_FILES='../saltbox-inventory-compose/.env'
  4. Проверьте, установлена ли переменная, разрешающая использование модуля «Инвентаризация»:

    SALTBOX_MODULE_INVENTORY_ON=false

Модуль «Планировщик»​

  1. Находясь в каталоге проекта saltbox-compose, в его родительский каталог клонируйте репозиторий saltbox-scheduler-compose

    git clone git@dev.saltbox.pro:saltbox/saltbox-scheduler-compose.git ../saltbox-scheduler-compose

    Перейдите в ветку с тегом, совпадающим с версией проекта saltbox-compose:

    cd ../saltbox-scheduler-compose && git checkout vX.Y.Z

    где vX.Y.Z — номер версии программного комплекса SALT.BOX.

  2. Если необходимо, переопределите переменные, установленные в файле .env модуля «Планировщик», в файле override.env проекта saltbox-compose.

    ВНИМАНИЕ

    Если Вы клонировали репозиторий saltbox-scheduler-compose в каталог, отличный от ../saltbox-scheduler-compose, в файле .env модуля переопределите переменную пути:

    SCHEDULER_COMPOSE_OUTER_PATH='<фактический относительный путь к каталогу>'
  3. В файл override.env проекта saltbox-compose добавьте переменную:

    _UPDATE_AND_RUN_EXTRA_ENV_FILES='../saltbox-scheduler-compose/.env'

Подключение нескольких дополнительных модулей​

  1. Клонируйте все необходимые репозитории в родительский каталог проекта saltbox-compose, как описано выше для отдельных модулей, и переключите каждый из них на ветку с тегом, совпадающим с версией проекта saltbox-compose.

  2. Если необходимо, переопределите переменные файлов .env дополнительных модулей, как описано выше для отдельных модулей.

  3. В файле override.env проекта saltbox-compose перечислите все добавляемые .env-файлы соответствующих модулей через запятую, например:

    _UPDATE_AND_RUN_EXTRA_ENV_FILES='../saltbox-inventory-compose/.env,../saltbox-metric-compose/.env,../saltbox-scheduler-compose/.env'

Создание файлов с секретами​

Создайте файлы с секретами в подкаталоге проекта ./secrets/.
Создать файлы можно с помощью вспомогательного скрипта:

python3 ./bin/make_secrets.py

Установка и запуск SALT.BOX​

Перед установкой и запуском проекта saltbox-compose должны быть завершены подготовительные этапы:

Загрузка необходимых Docker-образов и запуск проекта осуществляется с помощью скрипта saltbox-compose/bin/sb-compose.sh.

Данный скрипт представляет собой простую «обертку» над командой docker compose и является рекомендуемым способом управления запущенным экземпляром проекта.
Скрипт передает дополнительные файлы .env в docker compose.

Порядок применения файлов .env следующий:

base.env → файлы .env, указанные в переменной _UPDATE_AND_RUN_EXTRA_ENV_FILES → override.env.

Каждый следующий файл переопределяет переменные окружения, установленные в предыдущем.

Для запуска проекта:

Находясь в каталоге проекта saltbox-compose, запустите проект с опцией -d (запуск контейнеров в фоновом (detached) режиме):

sudo ./bin/sb-compose.sh up -d

Через некоторое время, необходимое для загрузки и обновления Docker-образов, создания необходимых объектов Docker и старта контейнеров, Вы можете проверить статусы проекта и отдельных контейнеров.
Примеры вывода команд при нормальном старте проекта приведены в разделе Объекты Docker, создаваемые при установке.

Работа с локальным SSL-сертификатом​

Веб-интерфейс SALT.BOX защищён локальным SSL-сертификатом.
При первом запуске SALT.BOX система автоматически создаёт собственный удостоверяющий центр (CA) и серверный SSL-сертификат.
Поскольку сертификат создаётся самой системой и не подписан публичным центром сертификации, браузер может отображать предупреждение о небезопасном соединении, например, NET::ERR_CERT_AUTHORITY_INVALID.

Чтобы убрать это предупреждение, установите корневой CA-сертификат SALT.BOX в доверенное хранилище сертификатов операционной системы или браузера.

ВНИМАНИЕ

Для установки в доверенное хранилище используйте файл ca.crt.
Устанавливать серверный сертификат proxy.crt вместо CA-сертификата не требуется.

Получение сертификата​

Сертификат хранится внутри Docker-контейнера redis-salt.
Чтобы получить его, из каталога установки SALT.BOX выполните команду:

./bin/get_ca.sh

Файл ca.crt будет скопирован в текущий каталог.

к сведению

Если стандартный сертификат был заменён вручную, этот способ выгрузки вернёт текущий пользовательский CA-сертификат.

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

Выберите инструкцию в зависимости от используемых ОС и браузера и установите сертификат:

Windows​

  1. Откройте Диспетчер сертификатов (certmgr.msc).
  2. Перейдите в ветку Доверенные корневые центры сертификации → Сертификаты.
  3. Щёлкните правой кнопкой мыши по папке Сертификаты и выберите Все задачи → Импорт...
  4. Следуйте мастеру импорта и укажите путь к файлу ca.crt.
  5. Выберите место хранения — Доверенные корневые центры сертификации.
  6. Нажмите Готово.
  7. Перезапустите браузер.

macOS​

  1. Запустите приложение Keychain Access.
  2. В левом меню выберите хранилище System.
  3. Перетащите файл ca.crt в окно приложения.
  4. Дважды щёлкните по добавленному сертификату и раскройте вкладку Trust.
  5. Установите параметр When using this certificate в значение Always Trust.
  6. Подтвердите действие паролем администратора.
  7. Перезапустите браузер.

Linux (Ubuntu / Debian)​

  1. Выполните эти команды от имени суперпользователя:

    sudo cp ca.crt /usr/local/share/ca-certificates/saltbox-ca.crt
    sudo update-ca-certificates
  2. Если используется встроенный прокси, перечитайте конфигурацию Nginx:

    saltbox restart nginx-proxy

Google Chrome​

Браузер Google Chrome использует системное хранилище сертификатов, поэтому достаточно выполнить действия выше для Вашей ОС.
После добавления сертификата перезапустите браузер.

Mozilla Firefox​

Браузер Mozilla Firefox имеет собственное хранилище сертификатов.

  1. Перейдите в Диспетчер сертификатов Firefox: меню браузера Настройки → боковое меню Приватность и защита → блок Безопасность подключения и ПО → кнопка Дополнительные настройки → блок Сертификаты → кнопка Управление сертификатами. Путь к Диспетчеру сертификатов может отличаться в Вашей версии браузера Firefox.
  2. На вкладке Центры сертификации нажмите кнопку Импортировать...
  3. Укажите путь к файлу ca.crt, далее в диалоговом окне установите флажок Доверять при идентификации веб-сайтов.
  4. Нажмите ОК.

Проверка сертификата​

После установки CA-сертификата откройте SALT.BOX по адресу, который соответствует одному из имён, указанных в SSL-сертификате.

Если сертификат установлен правильно:

  • браузер больше не отображает предупреждение о локальном сертификате;
  • соединение с SALT.BOX определяется как защищённое;
  • сертификат SALT.BOX отображается как доверенный.

Повторный выпуск сертификатов​

SSL-сертификаты генерируются на основе следующих переменных окружения:

  • WEB_SERVER_SSL_ALT_NAMES_DNS— DNS-имена, для которых должен быть действителен сертификат;
  • WEB_SERVER_SSL_ALT_NAMES_IP— IP-адреса, для которых должен быть действителен сертификат.

Обе переменные могут принимать списки, разделенные запятыми.
DNS-имена могут быть RFC-совместимыми wildcard-шаблонами (*.saltbox.local, но не *saltbox.local). Символы подстановки для IP-адресов не поддерживаются.
Автоматически генерируемый сертификат по умолчанию привязан к DNS-именам localhost и saltbox.local.

предупреждение

Изменение переменных WEB_SERVER_SSL_ALT_NAMES_DNS и WEB_SERVER_SSL_ALT_NAMES_IP приведёт к выпуску новых сертификатов.

Если ранее был установлен пользовательский сертификат, он будет перезаписан автоматически сгенерированным сертификатом.

После изменения параметров SSL проверьте используемый сертификат и при необходимости повторно настройте собственный сертификат.

Установка пользовательского сертификата​

Автоматически генерируемый сертификат можно заменить пользовательским.

предупреждение

Перед установкой пользовательского сертификата система должна быть запущена хотя бы один раз.

Находясь в каталоге проекта, скопируйте файл собственного сертификата и его приватный ключ в контейнер nginx:

# CUSTOM_CERT - путь к файлу с пользовательским сертификатом, CUSTOM_CERT_KEY - путь к файлу с приватным ключом сертификата
sudo ./bin/sb-compose.sh cp CUSTOM_CERT proxy:/etc/nginx/ssl/proxy.crt
sudo ./bin/sb-compose.sh cp CUSTOM_CERT_KEY proxy:/etc/nginx/ssl/proxy.key

sudo ./bin/sb-compose.sh exec proxy nginx -s reload

Если сертификат не работает​

Если после установки CA-сертификата браузер продолжает отображать предупреждение, проверьте:

  • установлен ли именно CA-сертификат;
  • добавлен ли сертификат в доверенное хранилище;
  • был ли перезапущен браузер после установки сертификата;
  • открывается ли SALT.BOX по адресу, для которого был создан сертификат;
  • не был ли серверный сертификат заменён после установки CA;
  • не изменялись ли параметры WEB_SERVER_SSL_ALT_NAMES_DNS и WEB_SERVER_SSL_ALT_NAMES_IP.
примечание

Если сертификат отсутствует в системе или получить его не удаётся, обратиÑ