﻿# Политика добавления пользовательских сертификатов CA в контейнеры ELMA365

> [HTML Version](ca-certificates-adding-policy.html)

В некоторых случаях требуется доверять пользовательским сертификатам CA. Kyverno позволяет автоматически добавлять том, содержащий пользовательские сертификаты CA, в контейнеры с определённой меткой.

Установка состоит из двух этапов:

1. [Подготовка Secret с сертификатом корневого CA](#secret-preparation).

2. [Заполнение конфигурационного файла](#fill-config-file).

## Шаг 1. Подготовка Secret с сертификатом корневого CA

Создайте **Secret** с сертификатом корневого CA в пространстве имён, где установлено приложение ELMA365. Если в кластере Kubernetes установлено несколько экземпляров приложения ELMA365, добавьте **Secret** только в пространствах имён нужных экземпляров ELMA365.

Создайте **Secret** с наименованием `elma365-onpremise-ca` в пространство имён, где установлено приложение ELMA365, выполнив команду:

````
kubectl create secret generic elma365-onpremise-ca --from-file=elma365-onpremise-ca.pem=/etc/ssl/certs/rootCA.pem \[-n namespace\]

````
Где в `--from-file` указывается путь до вашего сертификата корневого CA в формате **.pem**.

## Шаг 2. Заполнение конфигурационного файла

Заполните конфигурационный файл **values-policies.yaml** для установки политик Kyverno:

1. Настройте политику добавления пользовательских сертификатов CA во все контейнеры. Политика включена по умолчанию — в параметре `injectCerts.enabled` выставлено `true`. 

2. В параметре `injectCerts.secretCA`  укажите наименование **Secret**, созданного на шаге 1. В примере в данной статье — это значение `elma365-onpremise-ca`. Политика добавляет том, содержащий сертификат CA, ко всем контейнерам с меткой `tier=elma365`.

3. Если в кластере Kubernetes установлено несколько экземпляров приложения ELMA365 On-Premises, но пользовательский сертификат CA нужно добавить только к части экземпляров приложений ELMA365, заполните параметр `injectCerts.injectNamespace`. 

В параметре `injectCerts.injectNamespace` указаваются пространства имён экземпляров приложения ELMA365, для которых будет применена политика добавления сертификатов и добавлен том, содержащий сертификат CA. Убедитесь, что на шаге 1 **Secret** с сертификатом корневого CA были добавлены в пространства имён, перечисленные в **injectCerts.injectNamespace**.



````
\# Настройки kyverno-policies  
\# политика добавляет том, содержащий сертификат CA, ко всем контейнерам с меткой tier=elma365  
injectCerts:  
  enabled: true  
\# имя секрета с сертификатом корневого CA для работы https с самоподписанным сертификатом  
  secretCA: elma365-onpremise-ca  
\# список namespace, в которых будет применена политика  
\# injectNamespace:  
\#     - elma365-dev  
\#     - elma365-prod  
...

4. ````
После настройки политики безопасности выполните установку чарта **kyverno-policies**, как указано в шаге 3 этапа 2 статьи [«Установка Kyverno»](install-kyverno.md#install-kyverno-policies).

````
начало внимание

````
Установка компонента дополнений Kyverno автоматически не подключает том, содержащий сертификат CA, к уже запущенным подам приложения ELMA365. После установки Kyverno перезапустите сервисы приложения ELMA365.

````
конец внимание
````