我最近一直在使用nginxdemo / nginx-ingress控制器。
据我了解,这个控制器不能做SSL Passthrough(我的意思是将客户端证书一直传递到后端服务进行身份验证),所以相反,我已经通过标头传递客户端主题DN。
最终我更喜欢SSL-Passthrough并且一直在关注显然支持SSL直通的kubernetes / ingress-nginx项目。
有没有人有使用此控制器和SSL Passthrough的经验。
我发现的几个Ingress示例显示了直通路径设置为空白。
这是因为passthrough必须发生在TCP级别(4)而不是HTTP(7)吗?
现在,我有一个托管多条路径的主机规则。
答案 0 :(得分:0)
SSH传递对我来说工作正常。这是Official Documentation
这是一个示例用法:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: my-service-ingress
namespace: my-service
annotations:
kubernetes.io/ingress.allow-http: "false"
nginx.ingress.kubernetes.io/ssl-passthrough: "true"
nginx.ingress.kubernetes.io/secure-backends: "true"
spec:
rules:
- host: my.example.com
http:
paths:
- backend:
serviceName: my-service
答案 1 :(得分:0)
在lch答案上完成我想补充一点,我最近遇到了同样的问题,我对它进行了修改,以修改ingress-service部署(我知道这应该是一个DaemonSet,但这是另外一回事了)
更改是将参数添加到spec.containers.args:
--enable-ssl-passthrough
然后,我在入口中添加了以下注释:
kubernetes.io/ingress.allow-http: "false"
nginx.ingress.kubernetes.io/secure-backends: "true"
nginx.ingress.kubernetes.io/ssl-passthrough: "true"
nginx.ingress.kubernetes.io/ssl-redirect: "true"
重要的是安全后端和ssl-passthrough,但我认为如果您不希望那里有http流量,那么其余的都是好主意