2014-04-10 128 views
1

我已經在預先打包的碼頭服務器前設置了http反向代理。碼頭服務器是預先配置的應用程序,不太靈活。此Jetty服務器將只接受SSL請求。nginx反向代理的SSL握手問題

我有nginx配置爲使用SSL通信在443上使用SSL通信進行監聽。然後背後nginx的,我已經跑碼頭的服務器,有自己的證書在其他機器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 [error] 648#0: *1 SSL_do_handshake() failed (SSL: error:100AE081:elliptic curve routines:EC_GROUP_new_by_curve_name:unknown group error:1408D010:SSL routines:SSL3_GET_KEY_EXCHANGE:EC lib) while SSL handshaking to upstream, client: 172.16.9.140, server: _, request: "GET /rest/api/box/is_running HTTP/1.1", upstream: "https://<54.221.108.189:443>/rest/api/box/is_running", host: "ext.cc.net"

我把<>上述錯誤日誌,它沒有讓我張貼與IP的鏈接。

從上面我可以看出,這是說從我的代理到我的碼頭主機的SSL連接失敗。

如果我直接瀏覽到目標,在https和端口443上,它可以很好地工作。

我想知道如果其中之一將解決代理問題?但是,如何在連接到它的目標時強制nginx使用ssl?

感謝

回答