Перейти к содержанию

Настройка 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
Страница была полезна?