Развёртывание сервера 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.
-
Откройте или создайте файл
/etc/docker/daemon.json. -
Добавьте в файл следующую строку:
{ "astra-sec-level": 6 }Можно быстро добавить строку командой:
sudo cat << EOF > /etc/docker/daemon.json
{ "astra-sec-level" : 6 }
EOF -
Перезапустите 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.
Пример использования утилиты 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-образов с тегом последнего релиза:
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 следующего вида:
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 может быть запущен одним из двух способов:
- Автоматически — утилитой
install_saltbox.pyпо завершении загрузки файлов требуемых проектов и настройки конфигурационных файлов. - Вручную — если Вы самостоятельно клонировали репозитории с компонентами системы и сформировали файл
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 и разархивируйте его в каталог Вашей рабочей директории.
Подготовка к установке
-
Войдите в каталог проекта.
-
В корневом каталоге проекта создайте файл
override.env.
По необходимости в файлеoverride.envпереопределите переменные файлаbase.env, если это требуется пользователю для корректной работы SALT.BOX в его сетевой средек сведениюДалее приведены описания некоторых переменных файла
base.env, переопределение которых может потребоваться пользователю для корректной работы SALT.BOX в его сетевой среде.В большинстве случаев все переменные в файле
base.env, поставляемом в составе релиза, корректно настроены для случая, когда SALT.BOX устанавливается наlocalhost.Переопределение переменных необходимо также для установки дополнительных модулей одновременно с развёртыванием базовой части системы — Salt.Config.Box.
Инструкцию по установке дополнительных модулей смотрите в разделе Подключение дополнительных модулей.-
Если Вы планируете развёртывание 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). -
Сокет сервера Redis (для подключения к нему контроллера SALT.BOX).
Для подключения внешних контроллеров следует указать0.0.0.0:6379(все сетевые интерфейсы) либо указать адрес одного из сетевых интерфейсов:REDIS_SALT_EXPOSE_SOCKET=<IP_ADDRESS>:6379 -
Теги образов, с которых осуществляется развёртывание 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.
-
Время ожидания остановки контейнера до принудительной остановки:
STOP_GRACE_PERIOD=5sУменьшение данного значения может ускорить остановку, но повышает риски потери вре́менных данных.
-
Уровень журналирования контейнера главного контроллера SALT.BOX:
SALT_MASTER_LOG_LEVEL='warning'
SALT_MINION_LOG_LEVEL='warning'Обозначения уровней журналирования:
Уровень Числовое значение Описание critical 50 Критические ошибки error 40 Ошибки warning 30 Предупреждения info 20 Важная информация, предоставляемая приложением при нормальном выполнении debug 10 Информация для диагностики проблем и устранения неполадок all 0 Все события осторожноЛюбой уровень журнала ниже уровня "info" НЕБЕЗОПАСЕН и может регистрировать конфиденциальные данные.
Подробную информацию об уровнях журналирования смотрите в документации проекта SaltStack. -
Пути к каталогам в файловой системе хоста Docker, в которых будут храниться конфигурации для агентов.
Каталоги могут быть перенесены, например, на примонтированное хранилище:SSHFS_STORAGE_PATH='./_sshfs-storage/'SSHFS-хранилище предназначено для хранения шаблонов и некоторых других типов файлов, используемых при работе SALT.BOX.
-
Подключение дополнительных модулей
Дополнительные модули, расширяющие функциональные возможности программного комплекса SALT.BOX, могут распространяться по проприетарной лицензии.
Для их загрузки необходимо получить токен авторизации и выполнить вход в реестр Docker:
docker login registry.saltbox.pro
Подробные условия доступны на сайте продукта.
Модуль мониторинга
-
Находясь в каталоге проекта 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.
-
Если необходимо, переопределите переменные, установленные в файле
.envмодуля мониторинга, в файлеoverride.envпроекта saltbox-compose.ВНИМАНИЕЕсли Вы клонировали репозиторий saltbox-metric-compose в каталог, отличный от
../saltbox-metric-compose, в файле.envмодуля переопределите переменную пути:METRIC_OUTER_PATH='<фактический относительный путь к каталогу>' -
В файл
override.envпроекта saltbox-compose добавьте переменную:_UPDATE_AND_RUN_EXTRA_ENV_FILES='../saltbox-metric-compose/.env' -
Проверьте, установлена ли переменная, разрешающая использование модуля мониторинга:
SALTBOX_MODULE_METRIC_ON=true
Модуль «Инвентаризация»
-
Находясь в каталоге проекта 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.
-
Если необходимо, переопределите переменные, установленные в файле
.envмодуля «Инвентаризация», в файлеoverride.envпроекта saltbox-compose.ВНИМАНИЕЕсли Вы клонировали репозиторий saltbox-inventory-compose в каталог, отличный от
../saltbox-inventory-compose, в файле.envмодуля переопределите переменную пути:INVENTORY_COMPOSE_DIR='<фактический относительный путь к каталогу>' -
В файл
override.envпроекта saltbox-compose добавьте переменную:_UPDATE_AND_RUN_EXTRA_ENV_FILES='../saltbox-inventory-compose/.env' -
Проверьте, установлена ли переменная, разрешающая использование модуля «Инвентаризация»:
SALTBOX_MODULE_INVENTORY_ON=false
Модуль «Планировщик»
-
Находясь в каталоге проекта 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.
-
Если необходимо, переопределите переменные, установленные в файле
.envмодуля «Планировщик», в файлеoverride.envпроекта saltbox-compose.ВНИМАНИЕЕсли Вы клонировали репозиторий saltbox-scheduler-compose в каталог, отличный от
../saltbox-scheduler-compose, в файле.envмодуля переопределите переменную пути:SCHEDULER_COMPOSE_OUTER_PATH='<фактический относительный путь к каталогу>' -
В файл
override.envпроекта saltbox-compose добавьте переменную:_UPDATE_AND_RUN_EXTRA_ENV_FILES='../saltbox-scheduler-compose/.env'
Подключение нескольких дополнительных модулей
-
Клонируйте все необходимые репозитории в родительский каталог проекта saltbox-compose, как описано выше для отдельных модулей, и переключите каждый из них на ветку с тегом, совпадающим с версией проекта saltbox-compose.
-
Если необходимо, переопределите переменные файлов
.envдополнительных модулей, как описано выше для отдельных модулей. -
В файле
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
- Откройте Диспетчер сертификатов (
certmgr.msc). - Перейдите в ветку Доверенные корневые центры сертификации → Сертификаты.
- Щёлкните правой кнопкой мыши по папке Сертификаты и выберите Все задачи → Импорт...
- Следуйте мастеру импорта и укажите путь к файлу
ca.crt. - Выберите место хранения — Доверенные корневые центры сертификации.
- Нажмите Готово.
- Перезапустите браузер.
macOS
- Запустите приложение Keychain Access.
- В левом меню выберите хранилище System.
- Перетащите файл ca.crt в окно приложения.
- Дважды щёлкните по добавленному сертификату и раскройте вкладку Trust.
- Установите параметр When using this certificate в значение Always Trust.
- Подтвердите действие паролем администратора.
- Перезапустите браузер.
Linux (Ubuntu / Debian)
-
Выполните эти команды от имени суперпользователя:
sudo cp ca.crt /usr/local/share/ca-certificates/saltbox-ca.crt
sudo update-ca-certificates -
Если используется встроенный прокси, перечитайте конфигурацию Nginx:
saltbox restart nginx-proxy
Google Chrome
Браузер Google Chrome использует системное хранилище сертификатов, поэтому достаточно выполнить действия выше для Вашей ОС.
После добавления сертификата перезапустите браузер.
Mozilla Firefox
Браузер Mozilla Firefox имеет собственное хранилище сертификатов.
- Перейдите в Диспетчер сертификатов Firefox: меню браузера Настройки → боковое меню Приватность и защита → блок Безопасность подключения и ПО → кнопка Дополнительные настройки → блок Сертификаты → кнопка Управление сертификатами. Путь к Диспетчеру сертификатов может отличаться в Вашей версии браузера Firefox.
- На вкладке Центры сертификации нажмите кнопку Импортировать...
- Укажите путь к файлу ca.crt, далее в диалоговом окне установите флажок Доверять при идентификации веб-сайтов.
- Нажмите ОК.
Проверка сертификата
После установки 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.
Если сертификат отсутствует в системе или получить его не удаётся, обратиÑ