如何解决在 nginx Ingress 中使用自签名证书
我正在将服务迁移到 minikube 上的 kubernetes 集群中,这些服务在加载时需要自签名证书,通过 NodePort 访问服务完美运行并需要浏览器中的证书(下图),但通过入口访问主机(域在 /etc/hosts 中本地修改)为我提供了 Acme 的 Kubernetes 入口控制器假证书,并跳过我的自签名证书,没有任何消息。
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 上的一个错误,并且还必须在 nginx 控制器中使用 --enable-ssl-passthrough=true
标志 enable ssl passthrough(除了注解)。
我在 Minikube 集群版本 v1.15.1 和 kubernetes v1.19.4 上进行所有集群测试,其中 ssl passthrough 失败,在遵循 ingress-nginx GitHub issue 中的指导后,我发现问题没有重现因此,我尝试在新的 AWS 集群(k8 版本 1.18)上部署我的应用程序,一切正常。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。