クライアントからCONNECTメソッドを受け取った後にhttpプロキシによって実行されるsslトンネリングプロセスを巡って私の頭を覆そうとしています。HTTPプロキシSSLトンネリングリレーの詳細
スタッフ私が見つけたり、ドキュメント、ブログ、RFCで理解するように見えることはできません。
1)トンネルを設定するときに、クライアント・プロキシとプロキシ先の二つの別々の接続またはちょうどからの2つの接続があります全く同一の?例えば。 client-proxyとproxy-destinationの間のTCPハンドシェイクはありますか?
2)sslハンドシェイクを開始するとき、どのノードがクライアントによってターゲットに設定されていますか(IPアドレス/ホスト名)?プロキシまたは宛先ホスト? sslは認証作業を行うためにポイントツーポイント接続を必要とするため、私の感覚は宛先ホストでなければならないと私に伝えます。しかし、それは、宛先ホストがクライアントの観点から(直接的に)アクセスできない(したがって、プロキシ)ため、意味をなさないでしょう。
クライアントの観点から、そのノードをルーティング不可能にする必要があるので、クライアントが宛先ホストとのsslハンドシェイクをどのように実行できるのかは本当に分かりません。プロキシはルータの機能を果たしていますか?私はこれを取得していないようです:/ – Marc
@Marc:自分自身を引用する:*プロキシが単にデータを転送するとき*。はい、プロキシはデータを転送しますが、それはルータとして機能しません。ルータはパケットをネットワークレイヤで転送し、プロキシはセッションレイヤでパケットコンテンツを転送します。[OSIモデル](https://en.wikipedia.org/wiki/OSI_model)を参照してください。しかし、TLSハンドシェイクでは、パケットの内容だけが適切です。 –
OK、私は今それを得ると思います。したがって、sslハンドシェイクを開始するとき、クライアントはclienthelloメッセージを、すでに開いているクライアントプロキシ間のtcp cxnに置きます。それがプロキシに到着すると、プロキシ宛先との間で既に開かれているtcp缶上でそれを中継する。正しい? – Marc