启用客户端证书直通而不进行验证



我正在尝试为 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验证证书签名并仍然通过它,但它却从请求中消失了。

我可以建议看看这个问题吗

将 auth-tls-pass-certificate-true

(向入口资源(添加 auth-tls-pass-certificate-true 时,传递给入口控制器的客户端证书不会转发到后端 Pod。

显然,问题是

问题更多地是围绕在标头中传递客户端证书的标准化。我发现nginx正在将客户端证书传递给SSL客户端证书标头中的后端pod。

在您的情况下,我建议您检查证书的所有标头值,并查看它是否以不同的名称存在。

最重要的是,请记住检查您是否**使用标志enable-ssl-passthrough启动nginx入口控制器

最新更新