ELBを介してAmazonAWS EC2インスタンスでGlassFishが提供するWebSocketにSSL経由で接続するにはどうすればよいですか?
WebSocketの実装として、GlassFish 4.1b13プレリリースのTyrus1.8.1を使用しています。
ポート8080は保護されておらず、ポート8181はSSLで保護されています。
Wsとwssの両方を使用して、EC2インスタンスに直接接続しました(ELBをバイパスしました)。つまり、次の両方のURLが機能します。
Tcp 80> tcp 8080リスナーを使用して、ELB上でws(非SSL)を正常に使用しました。つまり、次のURLが機能します。
しかし、ELBを介してwssを使用する方法を見つけることができませんでした。
私は多くのことを試みました。
私のELBを介してwssを機能させる最も可能性の高い方法は、プロキシプロトコルを有効にしてELB上にtcp 8181> tcp 8181リスナーを作成し、次のURLを使用することだと思います。
残念ながら、それは機能しません。 Glassfishでプロキシプロトコルを有効にする必要があるかもしれませんが、その方法を見つけることができませんでした(または、それが可能かどうか、またはwssがELBを処理する必要があるかどうか)。
別のオプションは、何らかの方法でwsまたはwssをELBで終了するssl接続上で実行し、ssl> tcp 8080リスナーを使用して、Glassfishに対して保護されないままにすることです。それは私にとってもうまくいきませんでしたが、おそらくいくつかの設定が間違っていました。
誰かが私の前述の2つの試験に変更を加えていますか?または誰か他の提案がありますか?
ありがとう。
私は同様のセットアップを行い、元々ELBリスナーを次のように構成しました。
これはWebサイト自体では正常に機能しましたが、WebSocket接続は失敗しました。リスナーでは、SSLとは対照的に、すべての安全なTCP接続を許可して、wssも通過できるようにする必要があります。
ELBのアイドルタイムアウトを上げることもお勧めします。
最近、ブラウザとEC2Node.jsインスタンスの間でwssを有効にしました。考慮すべきことが2つありました。
タイムアウトがまだあるので、それは明らかに究極の解決策ではありませんが、私たちが通常行うことにはおそらく1時間で十分です。
この助けを願っています