Подготовка secret с сертификатом для работы по HTTPS

Для работы по протоколу HTTPS создайте secret с сертификатом. Настройка состоит из следующих этапов:

  1. Подготовить сертификат.
  2. Создать secret с сертификатом.
  3. Настроить поддержку доверия на стороне приложения ELMA365, если это требуется для используемого сертификата или набора сертификатов CA.

Шаг 1. Подготовить сертификат

Доступные способы выпуска сертификата зависят от контура установки:

Шаг 2. Создать secret с сертификатом

Добавьте сертификат в Kubernetes. Для этого в namespace с целевым приложением создайте secret типа tls с наименованием elma365-onpremise-tls, выполнив команду:

kubectl create secret tls elma365-onpremise-tls \
--cert=path/to/cert/file \
--key=path/to/key/file [-n namespace]

где:

  • --cert — путь к файлу с открытым сертификатом формата .pem или .crt;
  • --key — путь к файлу с закрытым ключом.

начало примечание

Примечание

Создайте secret с сертификатом в том же namespace, в котором работает или будет установлено целевое приложение, для которого выпускается сертификат:

конец примечание

Шаг 3. Настроить поддержку доверия корневому сертификату CA

Этот шаг выполняется в следующих случаях:

  • сертификат выпущен локальным удостоверяющим центром;
  • используется самоподписанный сертификат;
  • используется несколько сертификатов CA, для которых требуется настроить поддержку доверия.

Способ 1. Настроить поддержку доверия с помощью helm-чарта ELMA365

Используйте этот способ, если поддержка доверия требуется только для приложения ELMA365.

При настройке доверия одновременно к нескольким корневым или промежуточным удостоверяющим центрам — например, к локальному УЦ компании и сертификатам Минцифры России — сначала объедините сертификаты в один файл.

Чтобы настроить поддержку доверия с помощью helm-чарта ELMA365, выполните следующие действия:

  1. Если используется несколько сертификатов CA, объедините их в один файл:

awk 1 local-ca.crt russian_trusted_root_ca.crt russian_trusted_sub_ca.crt > path/to/rootCA

  1. В namespace, в котором установлено приложение ELMA365, создайте ConfigMap из файла сертификата CA или объединённого файла сертификатов CA:

kubectl create configmap elma365-onpremise-ca \
--from-file=elma365-onpremise-ca.pem=path/to/rootCA [-n namespace]

  1. Откройте конфигурационный файл values-elma365.yaml, заполненный при установке ELMA365.

Начало внимание

Перед редактированием файла values-elma365.yaml создайте его резервную копию, поскольку некорректная настройка параметров может привести к сбоям в работе приложения ELMA365.

Конец внимание 

 

В конфигурационном файле values-elma365.yaml заполните параметры:

  • global.ingress.onpremiseTls.enabledCA — использование пользовательского сертификата корневого CA приложением ELMA365. Для включения параметра укажите true;
  • global.ingress.onpremiseTls.configCA — наименование ранее созданного ConfigMap. В рамках статьи используется наименование elma365-onpremise-ca.

Пример файла:

global:
 ...
 ingress:
   # Включение host в ingress (значение берётся из host)
   # Если s3 minio устанавливался через чарты elma365-dbs, в файле values-dbs.yaml 
  # в блоке minio укажите значение в параметре hosts
   hostEnabled: false
   onpremiseTls:
     # включение HTTPS
     enabled: true
     # имя секрета с сертификатами для работы HTTPS
     secret: "elma365-onpremise-tls"
     # включение сертификата корневого CA для работы HTTPS с самоподписанным сертификатом
     enabledCA: true
     # имя ConfigMap с сертификатом корневого CA для работы HTTPS с самоподписанным сертификатом
     configCA: "elma365-onpremise-ca"

  1. Примените заданные параметры. Подробнее читайте в статье «Включение Network Encryption (TLS) в ELMA365 Enterprise».

Способ 2. Настроить поддержку доверия с помощью Kyverno

Используйте этот способ, если поддержка доверия требуется одновременно для приложения ELMA365 и встроенных баз данных. Kyverno позволяет автоматически добавлять том, содержащий пользовательские сертификаты CA, в контейнеры с определённой меткой. Подробнее читайте в разделе «Установка Kyverno».