【发布时间】:2017-08-25 10:22:59
【问题描述】:
我有一个 Ngnix 服务器 [Frond End say xx.xx] 和其他 Ngnix 服务器 [Other Backend Server say yy.yy]
如果使用 curl 命令我在 yy.yy 服务器上传递客户端证书和密钥,我会从后端服务器获得成功
问题: 如果使用 curl 命令,我在 xx.xx 服务器上传递客户端证书和密钥,我收到错误
400 错误请求
未发送所需的 SSL 证书所以在我的情况下 xx.xx 没有将证书传递给 yy.yy 服务器
请帮帮我
对于 yy.yy 服务器
server {
listen 443;
server_name yy.yy
ssl on;
ssl_certificate /etc/yyyycert.pem;
ssl_certificate_key /etc/yy.key;
ssl_client_certificate /etc/ca-chain-scb.cert.pem;
ssl_verify_client on;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-User $remote_user;
proxy_pass http://127.0.0.1:8080;
}
}
server {
listen 443;
server_name xx.xx
ssl on;
ssl_certificate /etc/xxxx.pem;
ssl_certificate_key /etc/xx.key;
ssl_verify_client on;
location ~ ^/SCB/(.*)$ {
proxy_set_header X-SSL-CERT $ssl_client_cert;
rewrite /SCB(.*) $1 break;
proxy_pass https://yy.yy:443;
}
}
【问题讨论】:
-
发布你的 nginx 配置
-
对于 xx.xx 服务器服务器 { 听 443; server_name xx.xx;开启ssl; ssl_certificate /etc/xx.cert.pem; ssl_certificate_key /etc/xx.key;位置 ~ ^/SCB/(.*)$ { proxy_set_header X-SSL-CERT $ssl_client_cert;重写 /SCB(.*) $1 break; proxy_pass yy.yy:443; } }
-
发布有问题的内容,而不是在 cmets 中。并发布双方配置
-
对于 yy.yy 服务器服务器 { 听 443; server_name yy.yy ssl on; ssl_certificate /etc/yyyycert.pem; ssl_certificate_key /etc/yy.key; ssl_client_certificate /etc/ca-chain-scb.cert.pem; ssl_verify_client 开启;位置 / { proxy_set_header 主机 $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-User $remote_user; proxy_pass 127.0.0.1:8080; } }
-
塔伦也做了同样的事情
标签: linux nginx openssl ssl-certificate reverse-proxy