Для работы по протоколу HTTPS создайте secret с сертификатом. Настройка состоит из следующих этапов:
- Подготовить сертификат.
- Создать secret с сертификатом.
- Настроить поддержку доверия на стороне приложения ELMA365, если это требуется для используемого сертификата или набора сертификатов CA.
Шаг 1. Подготовить сертификат
Доступные способы выпуска сертификата зависят от контура установки:
- при работе с доступом в интернет вы можете:
- приобрести сертификат, выпущенный одним из доверенных удостоверяющих центров, или использовать уже имеющийся;
- создать сертификат Let’s Encrypt;
- при работе в закрытом контуре без доступа в интернет вы можете:
- использовать уже имеющийся сертификат, выпущенный локальным удостоверяющим центром;
- создать самоподписанный сертификат с помощью OpenSSL;
- создать самоподписанный сертификат с помощью Cert-manager.
Шаг 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, в котором работает или будет установлено целевое приложение, для которого выпускается сертификат:
- для приложения ELMA365 стандартный namespace — elma365;
- для встроенных баз данных стандартный namespace — elma365-dbs.
конец примечание
Шаг 3. Настроить поддержку доверия корневому сертификату CA
Этот шаг выполняется в следующих случаях:
- сертификат выпущен локальным удостоверяющим центром;
- используется самоподписанный сертификат;
- используется несколько сертификатов CA, для которых требуется настроить поддержку доверия.
Способ 1. Настроить поддержку доверия с помощью helm-чарта ELMA365
Используйте этот способ, если поддержка доверия требуется только для приложения ELMA365.
При настройке доверия одновременно к нескольким корневым или промежуточным удостоверяющим центрам — например, к локальному УЦ компании и сертификатам Минцифры России — сначала объедините сертификаты в один файл.
Чтобы настроить поддержку доверия с помощью helm-чарта ELMA365, выполните следующие действия:
- Если используется несколько сертификатов CA, объедините их в один файл:
awk 1 local-ca.crt russian_trusted_root_ca.crt russian_trusted_sub_ca.crt > path/to/rootCA
- В namespace, в котором установлено приложение ELMA365, создайте ConfigMap из файла сертификата CA или объединённого файла сертификатов CA:
kubectl create configmap elma365-onpremise-ca \
--from-file=elma365-onpremise-ca.pem=path/to/rootCA [-n namespace]
- Откройте конфигурационный файл 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"
- Примените заданные параметры. Подробнее читайте в статье «Включение Network Encryption (TLS) в ELMA365 Enterprise».
Способ 2. Настроить поддержку доверия с помощью Kyverno
Используйте этот способ, если поддержка доверия требуется одновременно для приложения ELMA365 и встроенных баз данных. Kyverno позволяет автоматически добавлять том, содержащий пользовательские сертификаты CA, в контейнеры с определённой меткой. Подробнее читайте в разделе «Установка Kyverno».