【问题标题】:NGNIX reverse proxy with client certificate带有客户端证书的 NGINX 反向代理
【发布时间】:2022-02-18 02:01:07
【问题描述】:

我有前端 serverA 和后端 serverB。实际的应用程序托管在 serverB 上。当客户端调用 API 时,serverB 必须使用客户端发送的客户端证书进行身份验证。

我们已经在 serverA 中安装了 Ngnix 来代理_将从客户端收到的流量传递到 serverB。 当客户端使用客户端证书调用 serverA 时,Ngnix 不会将客户端证书发送到 serverB,并且由于此 serverB 拒绝来自客户端的请求。

有什么方法可以将请求连同最初由客户端发送的客户端证书一起重定向到 serverB?

下面是我的 Ngnix 配置。

如果 Ngnix 无法做到这一点,是否有任何其他具有此功能的开源工具可用?

server {
        listen       443 ssl;
        server_name  localhost;

        ssl_certificate      cert.pem;
        ssl_certificate_key  cert.pem;

        ssl on;

        location / {
            root   html;
            index  index.html index.htm;
            proxy_pass "https://localhost:8099";            
        }
    }

【问题讨论】:

  • /var/log/nginx/error.log 中的错误信息是什么?您是否尝试指定您的证书路径?例如ssl_certificate /etc/ssl/cert.pem;
  • @Bruno 上面的配置目前没有错误。我的问题是关于客户证书的。当客户端连同客户端证书一起调用 Ngnix localhost:443 时,Ngnix 不会将相同的证书传递给 ServerB (localhost:8099)。如何将客户端实际发送到 serverA 的相同证书传递给 serverB。

标签: nginx client-certificates nginx-reverse-proxy


【解决方案1】:

抱歉,可能晚了,但希望对您有所帮助。

当代理到后端服务器 B 时,您可以通过在请求标头中发送变量 $ssl_client_cert 来使用客户端证书代理请求。

【讨论】:

    猜你喜欢
    • 2017-06-15
    • 2021-09-01
    • 2017-06-08
    • 2020-08-16
    • 1970-01-01
    • 2018-03-07
    • 1970-01-01
    • 2011-12-10
    • 2013-02-25
    相关资源
    最近更新 更多