Добавление SSL-сертификата
Для работы системы по протоколу безопасного соединения HTTPS необходимо использовать SSL-сертификат.
SSL-сертификат — это цифровой документ, позволяющий использовать протокол безопасной связи SSL (Secure Sockets Layer). Применение SSL-сертификата предоставляет следующие гарантии для пользователей:
-
Ресурс, на котором расположена система, является подлинным и не принадлежит злоумышленникам.
-
Передаваемая информация защищена от злоумышленников благодаря установке зашифрованного соединения между ресурсом и браузером пользователя.
Для работы с системой вы можете добавить доверенный или самоподписанный сертификат.
Добавление сертификатов выполняется после установки R-Vision. |
Добавление доверенного SSL-сертификата
Доверенный SSL-сертификат — это сертификат, заверенный подписью удостоверяющего центра (УЦ). Такой сертификат показывает, что ресурс был проверен УЦ на предмет подлинности и безопасности работы.
В представленной инструкции в качестве примера используются файлы со следующими названиями:
|
Чтобы добавить доверенный SSL-сертификат, выполните на управляющем узле кластера Kubernetes следующие действия:
-
Создайте файл ssl.conf с описанием конфигурации SSL-сертификата.
-
Сгенерируйте файлы приватного ключа private.key и запроса на выпуск сертификата request.csr:
openssl req -new -config ssl.conf -keyout private.key -out request.csr
-
Если у вас есть корневой сертификат rootCA.crt от УЦ и его ключ rootCA.key, подпишите с его помощью запрос request.csr:
openssl x509 -req -CA rootCA.crt -CAkey rootCA.key -in request.csr -out domain.crt -days 365 -CAcreateserial
Если в конфигурации SSL-сертификата указано поле
subjectAltName
, то в конец команды необходимо добавить-extfile ssl.conf -extensions req_ext
:openssl x509 -req -CA rootCA.crt -CAkey rootCA.key -in request.csr -out domain.crt -days 365 -CAcreateserial -extfile ssl.conf -extensions req_ext
В результате будет создан доверенный сертификат domain.crt.
Если у вас нет корневого сертификата, передайте запрос request.csr удостоверяющему центру для создания доверенного сертификата. -
Создайте секрет в кластере Kubernetes:
kubectl create secret tls secret-name --namespace siem --key private.key --cert domain.crt
Здесь
secret-name
— имя секрета;siem
— пространство имен, в котором установлена R-Vision SIEM. -
Внесите изменения в Ingress кластера Kubernetes.
Для изменения Ingress потребуется список зарезервированных доменов для системы. Рекомендуется подготовить его заранее. Изменить Ingress можно одним из следующих способов:
-
Изменение Ingress вручную:
-
Откройте Ingress в режиме редактирования:
kubectl edit ingress evo.core.host-app-host-app
-
Добавьте в поле
spec
передrules
следующие строки:tls: - hosts: - <доменное имя 1> - <доменное имя 2> secretName: secret-name
Здесь
hosts
— доменные имена, зарезервированные для системы;secretName
— имя секрета, созданного на шаге 4.
-
-
Изменение Ingress через helm-чарты:
-
Создайте файл values.yaml со следующим содержанием:
modules: evo.core: host-app: ingress: ingresses: host-app: tls: - hosts: - <доменное имя 1> - <доменное имя 2> secretName: secret-name
Здесь
hosts
— доменные имена, зарезервированные для системы;secretName
— имя секрета, созданного на шаге 4. -
Обновите сервис evo.core.host-app:
helm upgrade -n siem evo.core.host-app /opt/r-vision/common/helm/r-huc --reuse-values --values values.yaml
Здесь
siem
— пространство имен, в котором установлена R-Vision SIEM;/opt/r-vision/common/helm/r-huc
— расположение чарта R-HUC.
-
-
Добавление самоподписанного SSL-сертификата
Самоподписанный SSL-сертификат — это сертификат, подписанный самим лицом, которое ответственно за ресурс. Самоподписанный сертификат не имеет статус доверенного в браузере пользователя до тех пор, пока не будет добавлен в список доверенных на компьютере пользователя вручную. Способ добавления самоподписанного сертификата в список доверенных отличается в зависимости от используемой ОС.
В представленной инструкции в качестве примера используются файлы со следующими названиями:
|
Чтобы добавить самоподписанный SSL-сертификат, выполните на управляющем узле кластера Kubernetes следующие действия:
-
Создайте файл ssl.conf с описанием конфигурации SSL-сертификата.
-
Сгенерируйте файлы приватного ключа private.key и запроса на выпуск сертификата request.csr:
openssl req -new -config ssl.conf -keyout private.key -out request.csr
-
Создайте самоподписанный сертификат domain.crt:
openssl x509 -signkey private.key -in request.csr -req -days 365 -out domain.crt
Если в конфигурации SSL-сертификата указано поле
subjectAltName
, то в конец команды необходимо добавить-extfile ssl.conf -extensions req_ext
:openssl x509 -signkey private.key -in request.csr -req -days 365 -out domain.crt -extfile ssl.conf -extensions req_ext
-
Создайте секрет в кластере Kubernetes:
kubectl create secret tls secret-name --namespace siem --key private.key --cert domain.crt
Здесь
secret-name
— имя секрета;siem
— пространство имен, в котором установлена R-Vision SIEM. -
Внесите изменения в Ingress кластера Kubernetes.
Для изменения Ingress потребуется список зарезервированных доменов для системы. Рекомендуется подготовить его заранее. Изменить Ingress можно одним из следующих способов:
-
Изменение Ingress вручную:
-
Откройте Ingress в режиме редактирования:
kubectl edit ingress evo.core.host-app-host-app
-
Добавьте в поле
spec
передrules
следующие строки:tls: - hosts: - <доменное имя 1> - <доменное имя 2> secretName: secret-name
Здесь
hosts
— доменные имена, зарезервированные для системы;secretName
— имя секрета, созданного на шаге 4.
-
-
Изменение Ingress через helm-чарты:
-
Создайте файл values.yaml со следующим содержанием:
modules: evo.core: host-app: ingress: ingresses: host-app: tls: - hosts: - <доменное имя 1> - <доменное имя 2> secretName: secret-name
Здесь
hosts
— доменные имена, зарезервированные для системы;secretName
— имя секрета, созданного на шаге 4. -
Обновите сервис evo.core.host-app:
helm upgrade -n siem evo.core.host-app /opt/r-vision/common/helm/r-huc --reuse-values --values values.yaml
Здесь
siem
— пространство имен, в котором установлена R-Vision SIEM;/opt/r-vision/common/helm/r-huc
— расположение чарта R-HUC.
-
-
Конфигурация SSL-сертификата
Конфигурация SSL-сертификата содержит набор обязательных и опциональных полей.
# Полное доменное имя ресурса системы. FQDN = <FQDN-адрес узла> # Название организации. ORGNAME = <название организации> # (опционально) Альтернативные DNS-имена и IP-адреса, которые должны быть связаны с сертификатом. ALTNAMES = DNS:<DNS-имя 1>,DNS:<DNS-имя 2>,IP:<IP-адрес 1>,IP:<IP-адрес 2> # Настройки для создания запроса сертификата CSR. Изменения не требуются. [ req ] default_bits = 2048 default_md = sha256 prompt = no encrypt_key = no distinguished_name = dn req_extensions = req_ext # Настройки уникального имени для сертификата, которые идентифицируют владельца сертификата. [ dn ] C = CH O = $ORGNAME CN = $FQDN # (опционально) Расширения, которые будут добавлены в запрос на сертификат. [ req_ext ] subjectAltName = $ALTNAMES
Общие поля
Общие поля задаются без привязки к какому-либо разделу полей.
Поле | Описание | Обязательное поле |
---|---|---|
|
Полное доменное имя ресурса, на котором расположена система. |
да |
|
Название организации, ответственной за ресурс. |
да |
|
Альтернативные IP-адреса и DNS-имена, которые должны быть связаны с сертификатом.
Поле указывается при задании |
нет |
Блок полей req
В этом блоке задаются настройки для создания запроса сертификата CSR.
Рекомендуется оставлять этот блок без изменений. |
Поле | Описание | Обязательное поле |
---|---|---|
|
Указывает длину ключа сертификата в битах. Рекомендуется устанавливать длину 2048 бит. |
да |
|
Определяет алгоритм хеширования для подписания сертификата. Рекомендуется использовать алгоритм SHA-256. |
да |
|
Определяет, нужно ли запрашивать ввод данных для полей в блоках |
да |
|
Определяет, нужно ли использовать ключ шифрования. Рекомендуется устанавливать значение |
да |
|
Указывает на блок полей, где задаются поля X.509. Рекомендуется указывать в поле ссылку на блок |
да |
|
Указывает на блок полей, где задаются расширения. Рекомендуется указывать в поле ссылку на блок |
нет |
Блок полей dn
Этот блок задает отличительное имя (Distinguished Name), идентифицирующее владельца сертификата.
Поле | Описание | Обязательное поле |
---|---|---|
|
Страна, в которой находится организация. |
да |
|
Название организации, ответственной за ресурс. Рекомендуется использовать значение поля |
да |
|
Общее имя (Common Name) ресурса, на которое будет выписан сертификат. Рекомендуется использовать значение поля |
да |