【问题标题】:How to use a wildcard certificate with ingress-nginx installed with Helm?如何在安装了 Helm 的 ingress-nginx 中使用通配符证书?
【发布时间】:2021-10-20 20:10:25
【问题描述】:

如何为 ingress-nginx 中的所有主机使用自定义通配符 TLS 证书?

我使用 ingress-nginx 作为入口控制器。使用 Helm chart 安装:

helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
helm repo update

# create secret
kubectl create secret tls example-com-certificate --namespace ingress-nginx \
    --key certs/tls.key \
    --cert certs/tls.crt   
   
# install ingress-nginx and use the secret
helm install ingress-nginx ingress-nginx/ingress-nginx --namespace ingress-nginx \
  --set controller.wildcardTLS.cert=ingress-nginx/example-com-certificate \
  --set controller.service.loadBalancerIP=10.0.0.1

这里是入口资源示例

kind: Ingress
apiVersion: networking.k8s.io/v1beta1
metadata:
  name: myservice-ingress
  namespace: myservice
  annotations:
    kubernetes.io/ingress.class: "nginx"
    kubernetes.io/ingress.allow-http: "false"    
    nginx.ingress.kubernetes.io/backend-protocol: "http"
    nginx.ingress.kubernetes.io/default-backend: myservice
spec:  
  tls:  
  - hosts:
    - myservice.example.com
    #secretName omitted to use default wildcard certificate
  rules:
  - host: myservice.example.com
    http:
      paths:
      - path: /
        backend:
          serviceName: myservice
          servicePort: 80

预计访问https://myservice.example.com时使用我的example-com-certificate

但是使用Kubernetes Ingress Controller Fake Certificate 代替。 为什么?

【问题讨论】:

    标签: kubernetes-ingress nginx-ingress


    【解决方案1】:

    按照这个例子试试:

    apiVersion: extensions/v1beta1
    kind: Ingress
    metadata:
      name: myservice-ingress
      annotations:
        kubernetes.io/ingress.class: nginx
    spec:
      rules:
      - host: my.example.com
        http:
          paths:
          - backend:
              serviceName: myservice
              servicePort: 80
            path: /
      tls:
      - hosts:
        - '*.example.com'
        - my.example.com
        secretName: wildcard-example-com-tls
    

    【讨论】:

    • 暂无进展。 Vit 建议的答案不起作用。
    • 您在主机下指定myservice.example.com 之前添加了- '*.example.com' 行?
    猜你喜欢
    • 1970-01-01
    • 2022-08-18
    • 2023-04-04
    • 1970-01-01
    • 1970-01-01
    • 2021-11-05
    • 2016-11-10
    • 1970-01-01
    • 2022-11-06
    相关资源
    最近更新 更多