Cамоподписанный сертификат используется для динамических тестовых окружений или при использовании внешнего балансировщика, терминирующего TLS‑трафик.
начало внимание
Самоподписанный сертификат TLS не обеспечивает надёжную защиту данных от злоумышленников. Рекомендуется использовать коммерческие TLS‑сертификаты от доверенных центров сертификации, таких как Comodo, Symantec, Thawte и т. д.
конец внимание
Чтобы создать сертификат с атрибутом SAN, выполните следующие действия:
- Установите компонент дополнений Cert-manager;
- Создайте yaml-файл selfsigned-cluster-issuer.yaml:
nano selfsigned-cluster-issuer.yaml
Для инициирования процедуры заказа сертификата в кластере kubernetes должны быть объявлены ресурсы центров сертификации (CA), которые используются для подписи CSR (запросов на выпуск сертификата). В зависимости от требуемой области видимости вы можете объявить нужный ресурс:
- Issuer — может использоваться в рамках одного пространства имён;
- ClusterIssuer — является глобальным объектом кластера.
- Вставьте в файл selfsigned-cluster-issuer.yaml следующие значения:
apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
name: elma365-selfsigned-certificate
spec:
selfSigned: {}
- Примените файл selfsigned-cluster-issuer.yaml к кластеру:
kubectl apply -f selfsigned-cluster-issuer.yaml
- Создайте yaml-файл сертификата create-selfsigned-elma365-certificate.yaml:
nano create-selfsigned-elma365-certificate.yaml
- Внесите изменения в файл 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").
- Примените файл create-selfsigned-elma365-certificate.yaml к кластеру:
kubectl apply -f create-selfsigned-elma365-certificate.yaml
- Для установки или обновления приложения ELMA365 или встроенных баз данных воспользуйтесь secret
elma365-onpremise-tls(наименование, указанное в параметреspec.secretName).