ELMA365 On-Premises > Подготовка инфраструктуры > TLS/SSL сертификаты / Создание сертификата Let’s Encrypt

Создание сертификата Let’s Encrypt

Let's Encrypt это бесплатный, автоматизированный и открытый Центр Сертификации. Он помогает решить проблему автоматической настройки HTTPS на сервере, когда SSL/TLS сертификаты выдаются и обновляются без участия человека.

Сертификат Let's Encrypt устанавливается в ELMA365 On-Premises Enterprise. Рассмотрим, как выполнить такую установку.

Чтобы создать сертификат Let's Encrypt, выполните следующие действия:

  1. Установите компонент дополнений Cert-manager.
  2. Создайте yaml-файл cluster-issuer.yaml:

nano cluster-issuer.yaml

Для инициирования процедуры заказа сертификата в кластере Kubernetes должны быть объявлены ресурсы центров сертификации (CA), которые используются для подписи CSR (запросов на выпуск сертификата). В зависимости от требуемой области видимости вы можете объявить нужный ресурс:

  • Issuer может использоваться в рамках одного пространства имён;
  • ClusterIssuer является глобальным объектом кластера.
  1. Вставьте в файл cluster-issuer.yaml следующие значения:

apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
  name: elma365-certificate
spec:
  acme:
    email: your_email@mail_server_domain
    server: https://acme-v02.api.letsencrypt.org/directory
    privateKeySecretRef:
      name: elma365-certificate
    solvers:
      - http01:
          ingress:
            class: nginx

где:

  • spec.acme.email адрес вашей электронной почты;
  • spec.acme.server адрес сервера. Let's Encrypt имеет ограничение на количество выпускаемых сертификатов, примерно пять в неделю, поэтому для отладки можно использовать адрес сервера другого издателя без ограничения: https://acme-staging-v02.api.letsencrypt.org/directory.
  1. Примените файл cluster-issuer.yaml к кластеру:

kubectl apply -f cluster-issuer.yaml

  1. Создайте yaml-файл сертификата create-elma365-certificate.yaml:

nano create-elma365-certificate.yaml

  1. Внесите изменения в файл create-elma365-certificate.yaml:

apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
  name: elma365-tls-certificate
  namespace: [namespace]
spec:
  secretName: elma365-onpremise-tls
  issuerRef:
    kind: ClusterIssuer
    name: elma365-certificate
  commonName: elma365_server.your_domain
  dnsNames:
  - elma365_server.your_domain

где:

  • metadata.namespace наименование нужного namespace, в котором должен быть размещён сертификат;
  • spec.commonName и dnsNames наименование домена (FQDN), для которого должен быть выпущен сертификат (замените "elma365_server.your_domain").

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

Secret с сертификатом должен быть создан в том же namespace, в котором работает или будет установлено целевое приложение, для которого выпускается сертификат.

Для приложения ELMA365 стандартный namespace: elma365.

Для встроенных баз данных стандартный namespace: elma365-dbs.

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

  1. Примените сертификат к кластеру:

kubectl apply -f create-elma365-certificate.yaml

  1. Для установки или обновления приложения ELMA365 или встроенных баз данных используйте secret elma365-onpremise-tls (наименование, указанное в параметре spec.secretName).