Kubernetes Ingress Nginx — CatchAll TLS — Как загрузить правильный сертификат?

У меня есть веб-приложение, которое позволяет использовать белые метки, где пользователь может добавить свой домен, перенаправить DNS и загрузить его приложение при загрузке домена пользователя.

Я пересылаю в мою форму заявки входной nginx, используяcatchAllтехника. Вот входной файл.yml

      apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: linkfy-frontend-ingress
  namespace: linkfy
  annotations:
    cert-manager.io/cluster-issuer: letsencrypt

spec:
  ingressClassName: nginx
  tls:
    - hosts:
        - example.tld
      secretName: example.tld 
  rules:
    - host: example.tld
      http:
        paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: frontend-service
                port:
                  number: 3000
    - host: "" # catchAll
      http:
        paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: frontend-service
                port:
                  number: 3000

Этот метод работает отлично. незащищенные запросыhttpмаршруты к интерфейсу из любого домена, который указан на балансировщике нагрузки.

Однако мне также нужно поддерживать tls. Хосты не поддерживают пустую строку «» или звездочку «*».

Примечание. Я могу использовать диспетчер сертификатов для создания сертификатов tls из моего приложения. Создание сертификатов работает отлично.

Единственная задача — загрузить этот сертификат, соответствующий входящему домену (catchAll).

Если у меня есть example2.tld, мне нужно загрузить сертификат, созданный для example2.tld.

0 ответов

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