2013-02-11 83 views
1

我的问题是关于nginx指令“proxy_pass”。使用nginx proxy_pass时的客户端认证

我有一个http服务器,我需要使用https重定向请求。 我使用以下语句: proxy_pass https://secure.server 在wireshark中,我看到存在SSL握手,但客户端(nginx proxy_pass https :)未在服务器的SSL证书请求上发送证书。 服务器需要验证客户端证书。如何在使用https时强制proxy_pass发送客户端证书? 下面是nginx.conf配置文件的一部分:

server { 
    listen 8888; 
    server_name  _; 
    error_page 405 =200 $uri; 
    ssl_certificate  /usr/local/cert.pem; 
    ssl_certificate_key /usr/local/cert.pem           
    ssl_client_certificate /usr/local/ca.cer;  

    location ~ /uri/(.+) { 

        proxy_pass https://secure.server; 
        break; 
      } 

    } 
+0

我知道这是旧的,但你碰巧找到答案吗? – CasualDemon 2014-04-14 18:48:47

回答

0

您需要启用SSL客户端证书验证。

添加这下其他SSL配置:

ssl_verify_client on; 

See more information here.

+1

我已经做到了。其他方(服务器)从客户端请求证书。客户端(充当proxy_pass)具有请求可分辨名称的证书,但不知何故,它不会发送此证书。 – Slava 2013-02-20 10:55:58

0

我正在寻找同样的解决方案,以及。

我找到了SEnginx,它有一个名为“Proxy HTTPS Client Certificate”的模块。从描述看来,应该允许客户端证书,但我无法让它为我工作。后端服务器根本不会提示客户端提供证书。以下是链接到SEnginx

另外:Here是一个可能的解释,为什么这可能是不可能的。