Настройка SSL/TLS для CodeScoring.Save¶
SSL/TLS настраивается на уровне ingress. Эта страница описывает базовую структуру values.yaml и два типовых способа подключить сертификат: через cert-manager или через заранее созданный Kubernetes secret.
Параметры ingress и TLS задаются в values.yaml в секции app.ingresses. Формат секции должен соответствовать схеме codescoring-generic.
Note
Точный набор аннотаций зависит от используемого ingress-контроллера и способа выпуска сертификатов.
Пример структуры:
app:
ingresses:
frontend:
className: nginx
annotations:
cert-manager.io/cluster-issuer: letsencrypt-prod
hosts:
- host: save.example.com
paths:
- path: /
pathType: Prefix
service:
name: frontend
port:
number: 8081
tls:
- secretName: save-tls
hosts:
- save.example.com
Использование cert-manager¶
# Установка cert-manager
kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.13.0/cert-manager.yaml
# Создание ClusterIssuer
cat <<EOF | kubectl apply -f -
apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
name: letsencrypt-prod
spec:
acme:
server: https://acme-v02.api.letsencrypt.org/directory
email: admin@example.com
privateKeySecretRef:
name: letsencrypt-prod
solvers:
- http01:
ingress:
class: nginx
EOF
Использование самоподписанных сертификатов¶
# Генерация сертификата
openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
-keyout tls.key -out tls.crt \
-subj "/CN=save.example.com"
# Создание secret
kubectl create secret tls save-tls \
--namespace codescoring-save \
--cert=tls.crt \
--key=tls.key
Страница была полезна?