【发布时间】:2021-04-07 21:47:14
【问题描述】:
我正在将服务迁移到 minikube 上的 kubernetes 集群中,这些服务在加载时需要自签名证书,通过 NodePort 访问服务可以完美运行并需要浏览器中的证书(下图),但通过入口访问host(该域在 /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
【问题讨论】:
-
你可能需要enable ssl-passthrough,默认是禁用的。这是在 Ingress 对象中启用直通后端所必需的。尝试启用它并让我知道它是否有效
-
nginx.ingress.kubernetes.io/ssl-passthrough:入口中存在“true”,但它不起作用我还添加了 nginx.ingress.kubernetes.io/auth-tls-pass-证书到上游:“真”但仍然没有..
-
你真的检查了我给你的链接吗?
-
是的,我做到了,但是入口中的注释是否不足以更改 nginx 控制器中的值?我会尝试手动添加它
-
我看到你创建了一个 github 问题:github.com/kubernetes/ingress-nginx/issues/6722 我将把这个链接留在这里。也许有一天它会帮助某人。无论如何,我尝试复制您的问题,并且可以确认这对我也不起作用。
标签: nginx ssl kubernetes nginx-ingress client-certificates