首页 文章

nginx反向代理的SSL握手问题

提问于
浏览
1

我在预先打包的jetty服务器前面设置了http反向代理 . jetty服务器是一个预配置的应用程序,并不是很灵活 . 此Jetty服务器仅接受SSL请求 .

我让nginx配置为使用自己的SSL证书侦听443的SSL流量 . 然后在nginx后面,我在其他机器上运行jetty服务器的anohter服务器,在端口443上有自己的证书 .

我的Nginx配置如下所示,

server 
{
    listen       443;
    server_name  _;
    ssl                  on;
    ssl_certificate      cc_net.pem;
    ssl_certificate_key  cc_net.key;

    ssl_session_timeout  5m;

    ssl_protocols  SSLv2 SSLv3 TLSv1;
    ssl_ciphers  ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
    ssl_prefer_server_ciphers   on;
    location /rest/api/box/get_user_info {
        proxy_pass https://fssdemo.cc.net/rest/api/box/get_user_info?external=true&server=$host;
   }
   location /rest/api/box/is_running {
        proxy_pass https://fssdemo.cc.net/rest/api/box/is_running;
   }
   location / {
        root   html;
        index  index.html index.htm;
    }
}

如果我在https上点击我的码头服务器,我会得到一个502,糟糕的网关 .

错误日志报告:

2014/04/10 08:52:48 [错误] 648#0:* 1 SSL_do_handshake()失败(SSL:错误:100AE081:椭圆曲线例程:EC_GROUP_new_by_curve_name:未知组错误:1408D010:SSL例程:SSL3_GET_KEY_EXCHANGE:EC lib )当SSL向上游握手时,客户端:172.16.9.140,服务器:_,请求:“GET / rest / api / box / is_running HTTP / 1.1”,上游:“https:// <54.221.108.189:443> / rest / api / box / is_running“,主持人:”ext.cc.net“

我把<>放在上面的错误日志中,不允许我发布带IP的链接 .

从上面我可以看出,这是说从我的代理到我的码头主机的ssl连接失败了 .

如果我直接浏览目标,在https和端口443上,它可以完美地工作 .

我想知道其中一个是否能解决代理问题?但是,当连接到目标时,我如何强制nginx使用ssl?

谢谢

1 回答

相关问题