12

JVMでは、HTTPプロキシサーバーを指定するためのプロキシプロパティhttp.proxyHostとhttp.proxyPort、およびHTTPSプロキシサーバーを指定するためのhttps.proxyHostとhttps.proxyPortが許可されます。

HTTPプロキシサーバーと比較してHTTPSプロキシサーバーを使用する利点があるかどうか疑問に思いましたか?

HTTPSプロキシを介してhttpsURLにアクセスすることは、HTTPプロキシからアクセスするよりも面倒ではありませんか?

4

3 に答える 3

47

HTTP プロキシはプレーンテキストのリクエストを取得し、[すべてではありませんがほとんどの場合] 別の HTTP リクエストをリモート サーバーに送信し、クライアントに情報を返します。

HTTPS プロキシはリレイヤーであり、特別な HTTP リクエスト (CONNECT 動詞) を受信し、宛先サーバー (必ずしも HTTPS サーバーであるとは限りません) への不透明なトンネルを構築します。次に、クライアントは SSL/TLS 要求をサーバーに送信し、SSL ハンドシェイクを続行し、次に HTTPS (要求された場合) を続行します。

ご覧のとおり、これらは 2 つのまったく異なるプロキシ タイプであり、異なる動作と異なる設計目標を持っています。HTTPS プロキシは、サーバーに送信された要求を認識しないため、何もキャッシュできません。HTTPS プロキシを使用すると、サーバーへのチャネルがあり、クライアントはサーバーの証明書を受信して​​検証します (オプションでその逆も可能です)。一方、HTTP プロキシは、クライアントから受信した要求を確認して制御します。

HTTPS 要求は HTTP プロキシ経由で送信できますが、このシナリオではプロキシがサーバーの証明書を検証しますが、クライアントはプロキシの証明書のみを受信して​​検証でき、プロキシの証明書の名前が一致しないため、これはほとんど行われません。ほとんどの場合、アラートが表示され、SSL ハンドシェイクは成功しません (これに対処する方法については詳しく説明しません)。

最後に、HTTP プロキシはリクエストを調べることができるため、これは HTTPS チャネルによって提供されるセキュリティの概念を無効にします。そのため、HTTPS リクエストに HTTP プロキシを使用することは、通常、デバッグ目的でのみ行われます (ここでも、監視を必要とする偏執的な企業セキュリティ ポリシーのケースは省略します)。会社の従業員のすべての HTTP トラフィック)。

追加:ここで同様のトピックに関する私の回答も読んでください。

于 2012-05-04T04:35:02.727 に答える