我使用nginx作为后端服务器的代理。 后端服务器也使用nginx并使用ssl_client_certificate
和ssl_verify_client
指令强制执行客户端证书authentication。
在我的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; }
根据nginx文档 。
但是,后端仍然响应400个响应代码"No required SSL certificate was sent"
。
请注意,当使用wget和客户机证书向后端服务器发出请求时,我得到一个有效的200 OK响应:
wget --certificate=/etc/nginx/cert/client.crt --private-key=/etc/nginx/cert/client.key https://www.backend.com
我在我的nginxconfiguration中错过了什么?
这篇文章似乎为我解决了这个问题。
我不得不添加下面的设置来为我工作。
proxy_ssl_server_name on;