如何为ingress nginx中的所有主机使用自定义通配符TLS证书
我使用一个入口-nginx作为入口控制器。它是使用Helm图表安装的:
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。为什么?
发布于 2022-11-23 05:01:54
tls秘密需要与您的应用程序位于同一个名称空间中,
在这个命令中,您指定了入口-nginx作为您的命名空间。
kubectl create secret tls example-com-certificate --namespace ingress-nginx \
--key certs/tls.key \
--cert certs/tls.crt 但是入口规则在另一个名称空间"myservice“中。
发布于 2021-10-21 13:11:21
根据这个例子尝试:
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-tlshttps://stackoverflow.com/questions/69652455
复制相似问题