我正在尝试为Kubernetes配置nginx-ingress,以便客户端证书无需验证即可传递给后端服务。
由于客户的请求,我们使用客户端证书进行身份验证,但证书不是由服务器签名的,因此我们的工作实际上不是验证证书,而只是检查它是否在允许的证书列表中。
这在我们的测试服务器上运行良好,我们使用由服务器CA证书签名的证书,但在设置
nginx.ingress.kubernetes.io/auth-tls-verify-client: "off"
客户端证书不再在请求标头中转发,即使我们仍有
nginx.ingress.kubernetes.io/auth-tls-pass-certificate-to-upstream: "true"
nginx-ingress甚至允许在没有验证的情况下通过客户端证书吗?
我本以为禁用auth-tls-verify-client只会阻止nginx-ingress验证证书签名,并仍然传递它,但结果它从请求中消失了。
发布于 2021-04-10 05:06:58
我可以建议你看看this issue吗
将auth-tls-pass- certificate - to添加到上游时:对于入口资源,传递到入口控制器的客户端证书不会转发到后端pod。
显然,问题是
的问题更多的是关于在报头中传递客户端证书的标准化。我发现nginx正在将客户端证书传递到Ssl- client -certificate头中的后端pod。
在您的情况下,我建议检查证书的所有标头值,并查看它是否以不同的名称存在。
最重要的是,记得检查**使用标志enable-ssl-passthrough
启动nginx入口控制器
https://stackoverflow.com/questions/55573577
复制相似问题