我正在使用nginx作为后端服务器的代理.
后端服务器还使用nginx并使用ssl_client_certificate和ssl_verify_client指令强制执行客户端证书身份验证.
在我的nginx服务器中,我设置以下内容:
location /proxy {
proxy_pass https://www.backend.com;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_ssl_certificate /etc/nginx/cert/client.crt;
proxy_ssl_certificate_key /etc/nginx/cert/client.key;
}
根据the nginx docs.
但是,后端仍然响应400响应代码“未发送所需的SSL证书”.
请注意,当使用带有客户端证书的wget向后端服务器发出请求时,我得到一个有效的200 OK响应:
wget --certificate=/etc/nginx/cert/client.crt --private-key=/etc/nginx/cert/client.key https://www.backend.com
我的nginx配置中缺少什么?
最佳答案
这个post似乎为我解决了这个问题.
我必须添加以下设置才能让我的工作正常.
proxy_ssl_server_name on;