2015-03-31 108 views
2

我使用AutobahnJS和高速公路上我的網站,並利用一切非加密連接工作正常:如何使用安全的websockets(wss)?

var connection = new autobahn.Connection({ 
              url: 'ws://www.example.com:9090', 
              realm: 'restricted_realm' 
             }); 

connection.onopen = function (session) { 
    alert('yay'); 
}; 

connection.open(); 

但是,我無法使用安全連接。在此錯誤控制檯更改ws://www.mysite.com:9090wss://www.example.com:9090結果:

WebSocket連接到 'WSS://www.example.com中:9090 /' 失敗:錯誤的連接建立:網:: ERR_TIMED_OUT

我在我的服務器上有一個SSL證書,可以通過https://www.example.com訪問我的網站。

我需要做些什麼來使安全的websockets工作?

回答

1

我使用HAProxy 1.5+SSL termination。這裏是我從生產配置的一部分。

frontend public 
    # HTTP 
    bind :80 
    # Redirect all HTTP traffic to HTTPS 
    redirect scheme https if !{ ssl_fc } 

    # HTTPS 
    bind :443 ssl crt ssl.pem no-sslv3 ecdhe prime256v1 ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA 
    acl  is_websocket hdr(Upgrade) -i WebSocket 
    use_backend ws if is_websocket #is_websocket_server 
    default_backend www 

backend ws 
    server ws1 127.0.0.1:9090 

backend www 
    timeout server 30s 
    server www1 127.0.0.1:8080 

在我的配置,Apache的監聽加密通信端口和WebSocket的服務器偵聽端口加密交通

相關問題