2016-10-25 4 views
4

私はNginx + flask-socketio + aws elbを使用しており、URLがhttpsに読み込まれたときに次のエラーメッセージが表示されます。 nginxのとソケットは、この上で助けてください混在コンテンツ:httpsでページが読み込まれましたが、安全でないことがありました

socket.io.min.js:2 Mixed Content: The page at 'https://localhost/' was loaded over HTTPS, but requested an insecure XMLHttpRequest endpoint 'http://localhost/socket.io/1/?t=1477375737508'. This request has been blocked; the content must be served over HTTPS.d.handshake @ socket.io.min.js:2 
socket.io.min.js:2 XMLHttpRequest cannot load http://localhost/socket.io/1/?t=1477375737508. Failed to start loading. 

答えて

2

は、インスタンスのために、右のAjaxのURL(代わりにhttp://your_site.com/handler//your_site.com/handlerを、)を使用していることを確認して、あなたの.jsファイルに見てみましょう:

$.ajax({ 
url:'//your_site.com/handler',dataType:'json',type:'get', 
success: function(data){...}, 
complete:function(xhr, textStatus){...} 
}); 
+2

実際に私は私のjsファイルでそれを見落としていましたが、私はいつも茂みを打っていました。今すぐ "ws://example.com/socket.io/1/websocket/654646646"へのWebSocket接続が失敗しました:WebSocketハンドシェイク中のエラー:予期しない応答コード:500 " – IAmHomes

+1

おそらくこれらのリンクが役立ちます: [リンク1](https://github.com/websocket-rails/websocket-rails/issues/378#issuecomment-170352798) [リンク2](https://github.com/websocket-rails/websocket) -rails/issues/211#issuecomment-57744925) –

1

混在コンテンツは採用されたセキュリティポリシーです現在のブラウザでは、「安全な」HTTPS経由で取得された情報が非セキュアなコンテキストに漏れないようにすることを目標としています。したがって、HTTPSで配信されるサイトでは、HTTPSまたはその他のTLS対応プロトコルを使用してコンテンツを取得する必要があります。

TLS経由WebsocketsのURIプレフィックスはwss、プレーンWebソケットwsです。 ChromiumFirefoxhttps + wsの混合コンテンツとみなされ、このような設定は拒否されます。wsの代わりにwssをsecure/HTTPSコンテキストのURIプレフィックスとして使用する必要があります。

関連する問題