Настройка TLS
"Спектр" поддерживает возможность использования TLS для шифрования данных, передаваемых между хостом "Спектра" и Агентом "Спектра" на узлах кластеров, а также хостами "Генома" и "Визиона". Для корректной работы TLS необходимо предоставить подписанные корневой и серверный с ключами, а также внести изменения в конфигурационные файлы модулей "Спектра", Агента "Спектра" и Агента уведомлений "Спектра".
При использовании TLS при взаимодействии с "Геномом" или "Визионом" потребуется также настроить соответствующее ПО на узлах "Генома" и "Визиона". Инструкция по настройке TLS представлена в документации соответствующих продуктов.
При первой установке "Спектра" генерируются ключ и самоподписанный серверный сертификат для доступа к веб-интерфейсу "Спектра" по протоколу HTTPS.
Для полноценной настройки защищенного взаимодействия между всеми компонентами необходимо иметь также и корневой сертификат, которым будут подписаны все остальные сертификаты. Сертификаты могут иметь цепочки любой длины, должны иметь формат PEM с расширением файла .pem или .crt и могут быть самоподписанными. Ключ сертификата должен иметь расширение файла .key.
|
Если серверные сертификаты для "Спектра", Агентов "Спектра", "Визиона", "Генома" были выпущены от общего корневого сертификата, то корневой сертификат, используемый для настройки защищенного взаимодействия с указанными компонентами – это один и тот же файл |
Настройка 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 для взаимодействия с "Визионом"
Если для "Визиона" настроено использование защищённого взаимодействия для внешних систем, то на стороне "Спектра" необходимо выполнить дополнительные настройки.
-
На узле "Спектра" разместить в
/opt/skala-r/spectrum/certs/ca.crtкорневой сертификат, от которого был выписан сертификат "Визиона". -
В файле конфигурации службы
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 для взаимодействия с модулем управления ПО "Скала^р Геном"
Если для модуля управления ПО "Скала^р Геном" настроено использование защищенного взаимодействия для внешних систем, то на стороне "Спектра" также необходимо выполнить дополнительные настройки.
-
На узле "Спектра" разместить в
/opt/skala-r/spectrum/certs/ca.crtкорневой сертификат, от которого был выписан сертификат модуля управления ПО "Скала^р Геном". -
В файле конфигурации службы
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