Ingress和SSL Passthrough

时间:2017-12-29 17:01:44

标签: kubernetes

我最近一直在使用nginxdemo / nginx-ingress控制器。

据我了解,这个控制器不能做SSL Passthrough(我的意思是将客户端证书一直传递到后端服务进行身份验证),所以相反,我已经通过标头传递客户端主题DN。

最终我更喜欢SSL-Passthrough并且一直在关注显然支持SSL直通的kubernetes / ingress-nginx项目。

有没有人有使用此控制器和SSL Passthrough的经验。

我发现的几个Ingress示例显示了直通路径设置为空白。

这是因为passthrough必须发生在TCP级别(4)而不是HTTP(7)吗?

现在,我有一个托管多条路径的主机规则。

2 个答案:

答案 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流量,那么其余的都是好主意