我使用 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 配置中缺少什么?
最佳答案
关于ssl - Nginx proxy_ssl_certificate 未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35969676/