我的问题是关于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 :(得分:0)
答案 1 :(得分:0)
我也在寻找相同的解决方案。
我找到了SEnginx,它有一个名为“代理HTTPS客户端证书”的模块。从描述看来应该允许客户端证书,但我无法让它为我工作。后端服务器根本不会提示客户端提供证书。
以下是指向SEnginx的链接。
另外:Here可能解释为什么这可能无法实现。
答案 2 :(得分:0)
在ssl握手期间,服务器将发送“客户端证书ca名称”。 (即)服务器仅接受来自那些CA的客户端证书。客户端只有在具有那些CA签名的证书的情况下,才会发送发送客户端证书。
因此,请验证 1.服务器为客户端证书请求发送的CA名称。这将是您在服务器的信任库中配置的CA。 (ie)在ssl握手期间寻找CertificateRequest消息
确保您的客户端证书已由其中一个CA签名
最佳选择是使用curl进行验证,客户端和服务器证书均已正确配置 curl -vvv --cert /usr/local/cert.pem https://secure.server 如果无法弄清卷曲输出,请粘贴卷曲输出