我已經在預先打包的碼頭服務器前設置了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?
感謝