Как заменить "фальшивый сертификат Kubernetes" на сертификат с подстановочными символами (в "голом железном" частном облаке) Nginx Ingress и менеджер сертификатов

Мы настроили кластер Kubernetes на нашем голом железном сервере.

Мы разворачиваем наше приложение, где каждое пространство имен является приложением для конечного пользователя. то есть customer1.mydomain.com -> пространство имен: cust1

Мы продолжаем получать лицевой сертификат Kubernetes Ingress Controller.

Мы приобрели собственные сертификаты подстановочных знаков *.mydomain.com

#kubectl create secret tls OUR-SECRET --key /path/private.key --cert /path/chain.crt -n ingress-nginx
#kubectl create secret tls OUR-SECRET --key /path/private.key --cert /path/chain.crt -n kube-system

ingress.yaml

apiVersion: certmanager.k8s.io/v1alpha1  
kind: Certificate  
metadata:  
  name: ourcloud
  namespace: cert-manager
spec:  
  secretName: oursecret
  issuerRef:
    name: letsencrypt-prod
  commonName: '*.mydomain.com'
  acme:
    config:
    - dns01:
        provider: cf-dns-prod
      domains:
      - '*.mydomain.com'

kubectl apply -f ingress.yaml
certificate.certmanager.k8s.io/ourcloud created

https://cust1.mydomain.com/ соединяется с Сертификатом лица контроллера входа Kubernetes

1 ответ

Я нашел проблему. У меня было неправильное имя файла в моем yaml для файлов сертификата. Всегда хорошо смотреть на входные журналы

kubectl logs nginx-ingress-controller-689498bc7c-tf5 -n ingress-nginx   



kubectl get -o yaml  ingress --all-namespaces

Попробуйте воссоздать секрет из файлов и посмотрите, работает ли он.

kubectl delete -n cust4 SECRETNAME

kubectl -n cust4 create secret tls SECRETENAME --key key.key --cert cert.crt

Если вы используете Helm а также cert manager, убедитесь, что у каждого входящего ресурса разные certificate name, эти значения обычно устанавливаются из файла значений в Helm-диаграмме.

tls - secretName: <give certificate name> hosts: example.com

Вы можете проверить доступные сертификаты, используя, чтобы избежать конфликта имен, если вы успешно развернули свои входящие ресурсы:

kubectl get certificates

Другие вопросы по тегам