Let's Encrypt — это бесплатный, автоматизированный и открытый Центр Сертификации. Он помогает решить проблему автоматической настройки HTTPS на сервере, когда SSL/TLS сертификаты выдаются и обновляются без участия человека.
Сертификат Let's Encrypt устанавливается в ELMA365 On-Premises Enterprise. Рассмотрим, как выполнить такую установку.
Чтобы создать сертификат Let's Encrypt, выполните следующие действия:
- Установите компонент дополнений Cert-manager.
- Создайте yaml-файл cluster-issuer.yaml:
nano cluster-issuer.yaml
Для инициирования процедуры заказа сертификата в кластере Kubernetes должны быть объявлены ресурсы центров сертификации (CA), которые используются для подписи CSR (запросов на выпуск сертификата). В зависимости от требуемой области видимости вы можете объявить нужный ресурс:
- Issuer — может использоваться в рамках одного пространства имён;
- ClusterIssuer — является глобальным объектом кластера.
- Вставьте в файл 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
.
- Примените файл cluster-issuer.yaml к кластеру:
kubectl apply -f cluster-issuer.yaml
- Создайте yaml-файл сертификата create-elma365-certificate.yaml:
nano create-elma365-certificate.yaml
- Внесите изменения в файл 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
.
конец внимание
- Примените сертификат к кластеру:
kubectl apply -f create-elma365-certificate.yaml
- Для установки или обновления приложения ELMA365 или встроенных баз данных используйте secret
elma365-onpremise-tls
(наименование, указанное в параметреspec.secretName
).