39054
ChromeでHTTPSで暗号化されているサイトから非SSLのWebSocketサーバーにアクセスすることはできますか?

Seleniumの`execute_script`を使ってjsを埋め込み、埋め込まれたjs内でMutationObserverを使ってDomの変更を監視して、変更を検知したらlocalhostにあるWebSocketサーバに通知するということをしたいです。

ブラウザはGoogle Chrome Canaryを使っているのですが、どうやらHTTPSのページ上での`ws://`(非SSL
WebSocket)の通信を許可しないようで、勝手に`wss://`に変更されてしまいます。

どうすればChromeでHTTPSのページ上で`ws://`で通信できるのでしょうか?

やはり`--allow-localhost-insecure`を有効にした状態で自己証明書を使うのが一番手っ取り早いのでしょうか?

macOS: 10.13  
Chrome Canary: 64.0.3250.0 (Official Build) canary  
Python 3.6.3
CC BY-SA 3.0
2017-10-26T14:50:14.343
39052
2017-10-26T22:14:38.633
5246
question
javascript google-chrome selenium websocket
Google ChromeでHTTPSのWebサイトで非SSLのWebSocketを使う
> ChromeでHTTPSで暗号化されているサイトから非SSLのWebSocketサーバーにアクセスすることはできますか?

できません。  
httpsのページからhttpのコンテンツを参照できないのと同じで、  
混合コンテンツの防止ポリシーにひっかかります。

> やはり--allow-localhost-insecureを有効にした状態で自己証明書を使うのが一番手っ取り早いのでしょうか?

これでlocalhostにwssで接続できるようにするのが、おっしゃる通り一番手っ取り早いと思います。
CC BY-SA 3.0
2017-10-26T22:14:38.633
39054
2017-10-26T22:14:38.633
13695
39052
answer