Настройка TLS

"Спектр" поддерживает возможность использования TLS для шифрования данных, передаваемых между хостом "Спектра" и Агентом "Спектра" на узлах кластеров, а также хостами "Генома" и "Визиона". Для корректной работы TLS необходимо предоставить подписанные корневой и серверный с ключами, а также внести изменения в конфигурационные файлы модулей "Спектра", Агента "Спектра" и Агента уведомлений "Спектра".

При использовании TLS при взаимодействии с "Геномом" или "Визионом" потребуется также настроить соответствующее ПО на узлах "Генома" и "Визиона". Инструкция по настройке TLS представлена в документации соответствующих продуктов.

При первой установке "Спектра" генерируются ключ и самоподписанный серверный сертификат для доступа к веб-интерфейсу "Спектра" по протоколу HTTPS.

Для полноценной настройки защищенного взаимодействия между всеми компонентами необходимо иметь также и корневой сертификат, которым будут подписаны все остальные сертификаты. Сертификаты могут иметь цепочки любой длины, должны иметь формат PEM с расширением файла .pem или .crt и могут быть самоподписанными. Ключ сертификата должен иметь расширение файла .key.

Если серверные сертификаты для "Спектра", Агентов "Спектра", "Визиона", "Генома" были выпущены от общего корневого сертификата, то корневой сертификат, используемый для настройки защищенного взаимодействия с указанными компонентами – это один и тот же файл /opt/skala-r/spectrum/certs/ca.crt.

Настройка TLS для веб-интерфейса "Спектра"

Названия и расположение файлов и ключей сертификатов может отличаться от приведенных в данном руководстве.

Для настройки TLS на хосте "Спектра" должны присутствовать:

  • серверный сертификат spectrum_server.crt

  • ключ серверного сертификата spectrum_server.key.

Ключи расположены в директории /etc/nginx/ssl.

Необходимо удостовериться, что в конфигурации файле конфигурации nginx для "Спектра" (/etc/nginx/sites-available.d/spectrum.conf) в блоке server присутствуют следующие директивы с корректно указанными путями:

listen       8092 ssl;
TLS_certificate      /etc/nginx/ssl/spectrum.crt;
TLS_certificate_key  /etc/nginx/ssl/spectrum.key;
TLS_protocols TLSv1.2 TLSv1.3;
TLS_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-CHACHA20-POLY1305;
TLS_prefer_server_ciphers off;
TLS_ecdh_curve secp384r1;
TLS_session_tickets off;


# Можно убрать т.к. пока нет клиентов API Спектра
#ssl_verify_client optional;
#ssl_client_certificate /opt/skala-r/spectrum/certs/ca.crt;

Настройка TLS для взаимодействия с Агентом "Спектра"

На узлах кластеров МБД.П должны присутствовать:

  • серверный сертификат node_server.crt

  • ключ серверного сертификата node_server.key.

Серверные сертификаты и ключи должны быть выписаны от одного корневого сертификата.

В файлах конфигурации Агента "Спектра" /opt/skala-r/etc/spectrum/spectrum-agent/config.conf и Агента уведомлений "Спектра" на узлах кластера должны быть указаны пути к серверному сертификату и ключу.

Пример секции с указанными путями к сертификатам в конфигурации Агента "Спектра":

"cert": {
       "server_cert": "/opt/skala-r/spectrum/certs/server.crt",
       "server_key": "/opt/skala-r/spectrum/certs/server.key",
}

На узле "Спектра" должен присутствовать корневой сертификат, а также в файлах конфигураций для служб spectrum-api, spectrum-tasks, spectrum-scheduler необходимо указать путь к корневому сертификату в секции agent_config.

Пути к файлам конфигураций соответствующих служб на хосте "Спектра":

  • /opt/skala-r/etc/spectrum/spectrum-api/config.conf,

  • /opt/skala-r/etc/spectrum/spectrum-tasks/config.conf,

  • /opt/skala-r/etc/spectrum/spectrum-sheduler/config.conf.

Пример секции с указанными путями к сертификатам в конфигурации spectrum-api:

[agent_config]
port=9000
cert=/opt/skala-r/spectrum/certs/ca.crt

Настройка TLS для взаимодействия с "Визионом"

Если для "Визиона" настроено использование защищённого взаимодействия для внешних систем, то на стороне "Спектра" необходимо выполнить дополнительные настройки.

  1. На узле "Спектра" разместить в /opt/skala-r/spectrum/certs/ca.crt корневой сертификат, от которого был выписан сертификат "Визиона".

  2. В файле конфигурации службы spectrum-api (/opt/skala-r/etc/spectrum/spectrum-api/config.conf) в секции vision_config указать путь к корневому сертификату.

    Пример секции:

    [vision_config]
    host=172.29.224.179
    port=8428
    base_url=/vision/victoriametrics/api/v1
    cert=/opt/skala-r/spectrum/certs/ca.crt

Настройка TLS для взаимодействия с модулем управления ПО "Скала^р Геном"

Если для модуля управления ПО "Скала^р Геном" настроено использование защищенного взаимодействия для внешних систем, то на стороне "Спектра" также необходимо выполнить дополнительные настройки.

  1. На узле "Спектра" разместить в /opt/skala-r/spectrum/certs/ca.crt корневой сертификат, от которого был выписан сертификат модуля управления ПО "Скала^р Геном".

  2. В файле конфигурации службы spectrum-api (/opt/skala-r/etc/spectrum/spectrum-api/config.conf) в секции genome_config указать путь к корневому сертификату.

    Пример секции:

    [genome_config]
    host=192.168.190.100
    port=52888
    base_url=/api/genome/v001/spectrum
    username_db=genome
    cert=/opt/skala-r/spectrum/certs/ca.crt