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.