入口和 SSL 直通



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

据我了解,该控制器无法执行 SSL 直通(我的意思是将客户端证书一直传递到后端服务进行身份验证(,因此我一直在通过标头传递客户端主题 DN。

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

是否有人对此控制器和SSL直通有经验。

我发现的几个显示直通的入口示例将路径设置留空。

这是因为直通必须在TCP级别(4(而不是HTTP(7(进行吗?

现在,我有一个为多个路径提供服务的主机规则。

在 lch 答案上完成 我想补充一点,我最近遇到了同样的问题,我整理了它,修改了入口服务部署(我知道,它应该是一个守护程序集,但那是另一回事(

更改是将参数添加到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直通,但我认为其余的是一个好主意,前提是你不希望那里有http流量

SSH-Passthrough对我来说工作正常。这是官方文档

下面是一个用法示例:

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

尝试添加以下注释(可能在此处建议的其他注释之上(

nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"

最新更新