HTTPの場合、すべての要求を301応答でHTTPSにアップグレードできます。WebSocketをTLSにアップグレードする
ウェブソケットの場合、それほど簡単ではないようです。 ws://127.0.0.1リクエストをwss:/127.0.0.1にリダイレクトすると、websocket.orgのテストを使用してブラウザで「エラー:未定義」と表示されます(はい、証明書は信頼でき、wss if直接使用)。最初の要求が行われ、リダイレクトが送信されます。ただし、TLSポートには第2の要求はありません。
この仕様では、リダイレクトについてのみ簡単に説明しています。
- wssからwssへのアップグレードは可能ですか?
- リダイレクト応答があってもWebSocket固有のヘッダーを送信する必要がありますか? (現時点では、私はそうではありません。ハンドシェイクを完了する前にリダイレクトすることを仕様に挙げています)
- 私が見逃していることは他にありますか?
hm kay :(そして、知っておきたいことです。リダイレクト=>単純なHTTP/1.1 301 Moved Permanently \ r \ n場所:wss:// host:port/requestTarget?query \ r \ n \ r \ nは行く方法ですか?また、wssの代わりにhttpsに転送することもできますので、リダイレクトエンドポイントはwebsocketヘッダーを解析する必要はありません。実際に動作するリダイレクトを実行するためのより良いソリューションはありますか? – Etan
@Etan :WebSocketクライアントがhttp(s)へのリダイレクトで何をすべきですか?websocketクライアントはwebsocketを話したがっていますが、ピアがそれをしないと(* "... websocketヘッダーを解析する必要はありません")、クライアントがwebsocketのリダイレクトをサポートしている場合、wss://へのリダイレクトは正常に動作するはずです –
私は何を前提としていましたか?一般的なリダイレクト先のSSLエンドポイントを許可する例外があるかどうか彼らが他のポートにリダイレクトしているものについて気をつけてください。 WebSocketリクエストをwss://にリダイレクトし、クライアントが常にwssバージョンに直接アクセスできるようにクライアントを調整します。 – Etan