ELMA365 On-Premises > Подготовка инфраструктуры > TLS/SSL сертификаты / Создание самоподписанных сертификатов TLS/SSL с помощью Cert-manager

Создание самоподписанных сертификатов TLS/SSL с помощью Cert-manager

Cамоподписанный сертификат используется для динамических тестовых окружений или при использовании внешнего балансировщика, терминирующего SSL-трафик.

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

Самоподписанный сертификат SSL не обеспечивает надёжную защиту данных от злоумышленников. Рекомендуется использовать коммерческие SSL-сертификаты от доверенных центров сертификации, таких как Comodo, Symantec, Thawte и т. д.

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

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

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

nano selfsigned-cluster-issuer.yaml

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

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

apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
  name: elma365-selfsigned-certificate
spec:
  selfSigned: {}

  1. Примените файл selfsigned-cluster-issuer.yaml к кластеру:

kubectl apply -f selfsigned-cluster-issuer.yaml

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

nano create-selfsigned-elma365-certificate.yaml

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

apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
  name: elma365-selfsigned-tls-certificate
  namespace: [namespace]
spec:
  secretName: elma365-onpremise-tls
  secretTemplate:
    annotations:
      reflector.v1.k8s.emberstack.com/reflection-allowed: "true"
      reflector.v1.k8s.emberstack.com/reflection-allowed-namespaces: "kube-system"
      reflector.v1.k8s.emberstack.com/reflection-auto-enabled: "true"
      reflector.v1.k8s.emberstack.com/reflection-auto-namespaces: "kube-system"
  duration: 8760h
  renewBefore: 720h
  isCA: false
  subject:
    organizations:
    - "YOUR_NAME_ORGANIZATIONS"
  privateKey:
    algorithm: ECDSA
    size: 384
    encoding: PKCS8
    rotationPolicy: Always
  issuerRef:
    kind: ClusterIssuer
    name: elma365-selfsigned-certificate
  commonName: "elma365_server.your_domain"
  dnsNames:
  - "elma365_server.your_domain"

где:

  • metadata.namespace наименование нужного namespace, в котором должен быть размещён сертификат;

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

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

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

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

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

  • spec.duration срок действия сертификата в часах;
  • spec.subject.organizations наименование вашей организации (замените "YOUR_NAME_ORGANIZATIONS");
  • spec.commonName и dnsNames наименование домена (FQDN), для которого должен быть выпущен сертификат (замените "elma365_server.your_domain").
  1. Примените файл create-selfsigned-elma365-certificate.yaml к кластеру:

kubectl apply -f create-selfsigned-elma365-certificate.yaml

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