質問: 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
回答: > > ChromeでHTTPSで暗号化されているサイトから非SSLのWebSocketサーバーにアクセスすることはできますか? > > > できません。 httpsのページからhttpのコンテンツを参照できないのと同じで、 混合コンテンツの防止ポリシーにひっかかります。 > > やはり--allow-localhost-insecureを有効にした状態で自己証明書を使うのが一番手っ取り早いのでしょうか? > > > これでlocalhostにwssで接続できるようにするのが、おっしゃる通り一番手っ取り早いと思います。