Kubernetes Ingress Nginx - CatchAll TLS - 如何加载正确的证书?

Kubernetes Ingress Nginx - CatchAll TLS - 如何加载正确的证书?

我有一个允许白标的 Web 应用程序,用户可以在其中添加他们的域、转发 DNS 并在加载用户域时加载它的应用程序。

我正在使用技术将 ingress nginx 转发到我的应用程序catchAll。这是 ingress.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。Hosts 不支持空白字符串“”或星号“*”

注意:我可以使用证书管理器从我的应用程序创建 tls 证书。证书创建工作正常。

唯一的挑战是加载与传入域 (catchAll) 匹配的证书。

如果我有 example2.tld,我需要加载为 example2.tld 创建的证书。

相关内容