【发布时间】: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