【问题标题】:Enabling client certificate passthrough without validation启用客户端证书直通而不进行验证
【发布时间】:2019-08-29 14:40:51
【问题描述】:

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

【问题讨论】:

    标签: kubernetes nginx-ingress


    【解决方案1】:

    我建议看看this issue

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

    显然,问题是

    更多关于在标头中传递客户端证书的标准化问题。我发现 nginx 正在将客户端证书传递给 Ssl-client-certificate 标头中的后端 pod。

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

    除此之外,记得检查你**用标志enable-ssl-passthrough启动nginx入口控制器

    【讨论】:

    • 我建议您在答案正文中展示大部分解决方案,而不是参考外部来源
    猜你喜欢
    • 2012-01-10
    • 1970-01-01
    • 2019-07-04
    • 2015-10-29
    • 2018-07-05
    • 2019-01-14
    • 2015-02-26
    • 1970-01-01
    • 2019-06-21
    相关资源
    最近更新 更多