我正在将服务迁移到 minikube 上的 kubernetes 集群中,这些服务需要在加载时使用自签名证书,通过 NodePort 访问服务非常完美,并且需要浏览器中的证书(下图),但通过入口访问主机(域在/etc/hosts 中本地修改)为我提供了 Acme 的 Kubernetes Ingress Controller 假证书,并跳过我的自签名证书,没有任何消息。
SSL 应该在应用程序内部而不是在 Ingress 中解密,并且 tls-acme: "false"标志不起作用并且仍然给我假证书
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: ingress
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
# decryption of tls occurs in the backend service
nginx.ingress.kubernetes.io/ssl-passthrough: "true"
nginx.ingress.kubernetes.io/tls-acme: "false"
spec:
rules:
- host: admin.domain.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: admin-service
port:
number: 443
minikube 版本:v1.15.1
kubectl 版本:1.19
使用 ingress-nginx 3.18.0
最佳答案
问题原来是Minikube上的一个bug,也不得不enable ssl passthrough在带有标志 --enable-ssl-passthrough=true
的 nginx Controller 中(除了注释之外)。
我在 Minikube 集群版本 v1.15.1 和 kubernetes v1.19.4 上进行了所有集群测试,其中 ssl 直通失败,并遵循了 ingress-nginx GitHub issue 中的指导。 ,我发现问题并没有重复出现,所以我尝试将我的应用程序部署到一个新的 AWS 集群(k8 版本 1.18)上,一切都运行良好。
关于nginx - 在 nginx Ingress 中使用自签名证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65523064/