Справка Business Studio
Переход на сайт нейросети Perplexity AI для поиска информации о Business Studio. Подробнее о возможности см. по ссылке

Содержание справки



Создание DNS-имен и сертификатов

Необходимо определить доменные имена для сервисов и, при наличии DNS-сервера в сети, зарегистрировать их в его конфигурации. Для указанных ниже сервисов требуется заранее создать доменные имена. Также необходимо выпустить SSL-сертификаты для всех сервисов, за исключением bs-license-server:

  • bs-backend - основной веб-портал
  • keycloak - сервис авторизации
  • onlyoffice-documentserver - редактор документов
  • bs-license-server - сервер лицензий (сертификат не требуется)
  • redis-ui - веб-интерфейс Redis
  • kafka-ui - веб-интерфейс Kafka-ui
  • opensearch-dashboards - веб-интерфейс OpenSearch
  • ca - корневой сертификат (используется для выпуска остальных сертификатов; доменное имя не требуется)

Готовые сертификаты необходимо разместить в каталоге /DockerCompose/Certificates/https (в соответствующие поддиректории для каждого сервиса).

Рекомендуется использовать следующую структуру файлов:

  • сертификат (.crt / .pem)
  • приватный ключ (.key)
  • пароль к сертификату (.txt) — при необходимости

Для упрощения администрирования рекомендуется использовать wildcard-сертификаты, покрывающие все поддомены одного домена.

Поддерживаемый формат:

  • .pem (основной и рекомендуемый)

Фактически используются:

  • .crt, .cer, .pem — сертификаты
  • .key — приватные ключи

Для корректного разрешения имен внутри Docker-контейнера необходимо добавить адрес вашего корпоративного DNS-сервера в файл /etc/docker/daemon.json. Пример конфигурации представлен ниже:

{
  "dns": ["10.1.2.3"]
}

Примечание: при выполнении скрипта bs_setup.sh будет дополнительно предложено настроить ротацию логов Docker-контейнеров (параметры log-driver и log-opts в том же файле /etc/docker/daemon.json), чтобы избежать неконтролируемого роста логов и переполнения диска. Рекомендуется согласиться с данной настройкой — она не требует ручного редактирования конфигурации.

Перезапуск службы Docker для применения внесённых изменений (DNS и настроек логирования) выполняется автоматически в процессе работы скрипта bs_setup.sh — вручную перезапускать Docker не требуется.

Далее укажите доменные имена и пути к сертификатам в конфигурационном файле .env.

Примечание: пример создания сертификатов можно посмотреть в подразделе: Создание локального центра сертификации (CA) и выпуск TLS-сертификата.

Внимание! В файле docker-compose.yml присутствует переменная: ASPNETCORE_Kestrel__Certificates__Default__Password="***"

Данная переменная должна содержать пароль от сертификата, который используется сервисом bs-backend. Возможны два варианта:

Порядок её заполнения зависит от того, какой сертификат используется при установке:

1. Самоподписанные сертификаты

Инсталлятор автоматически генерирует пароль, шифрует им сертификат и подставляет этот пароль в переменную ASPNETCORE_Kestrel__Certificates__Default__Password.

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

2. Корпоративные сертификаты

  • Если ключ сертификата защищён паролем — в процессе установки в окне терминала появится запрос на ввод пароля от сертификата. Введённый пароль будет автоматически прописан в переменную.
  • Если ключ сертификата без пароля — переменная ASPNETCORE_Kestrel__Certificates__Default__Password будет автоматически закомментирована инсталлятором.

Возможные проблемы

Если после установки контейнер bs-backend не запускается и в логах появляется ошибка загрузки сертификата, проверьте:

  • соответствие значения переменной реальному паролю сертификата (для корпоративных сертификатов);
  • корректность закомментированной строки (если сертификат без пароля).

Если корпоративный DNS-сервер отсутствует, доменные имена необходимо прописать вручную в файле /DockerCompose/hosts/hosts.

Пример заполнения:

192.168.1.39 web.local
192.168.1.39 kc.local
192.168.1.39 oo.local
192.168.1.39 redis-ui.local
192.168.1.39 opensearch-dashboards.local
192.168.1.39 kafka-ui.local

Внимание! Пропустите этот шаг, если вы уже настроили DNS через daemon.json. Ручное заполнение hosts — резервный метод, который используется только при отсутствии основного DNS-сервера в качестве крайней меры.