Cамоподписанный сертификат используется для динамических тестовых окружений или при использовании внешнего балансировщика, терминирующего SSL-трафик.
начало внимание
Самоподписанный сертификат SSL не обеспечивает надёжную защиту данных от злоумышленников. Рекомендуется использовать коммерческие SSL-сертификаты от доверенных центров сертификации, таких как 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
).