4

私のセットアップでは、2 層の透過プロキシがあります。クライアントが SSL 要求を行うとき、クライアントとのハンドシェイクを試行せずに、最初に出会ったプロキシがトラフィックを別のプロキシに転送するようにしたいと考えています。

セットアップはおかしいようですが、私の場合は正当化されます.2番目のプロキシは、(他のサービスを介して)最初のプロキシに時折しか登録しません. 最初に、「 _ _ _のようなトラフィックに興味があります」と伝えます。ほとんどの場合、最初のプロキシは単純に作業を行います。

httpProxy (ノードプロキシ内) は SSL リクエストをプロキシできますか? httpsProxy を使用する必要がありますか (これにより、クライアントとのハンドシェイクが行われます)?

4

2 に答える 2

5

必要に応じて、既存の httpsProxy を使用してこれらすべてを実行できます。ノード以外のプロキシまたは別のサーバーへのプロキシを使用したい場合を除き、2 つ持つことで得られるものはわかりません。

必要なロギング/署名ロジックを既存の httpsProxy に追加するだけです。

通常、プロキシで https を使用して、開いているポートの数を制限し、実行中のすべてのノード サーバーで https を実行する必要をなくします。http-basic ライブラリを使用して Basic Auth を追加することもできます。

サンプル コードを参照してください: https://github.com/TotallyInformation/node-proxy-https-example/blob/master/proxy.js

EDIT 2012-05-15: うーん、少し考えた結果、Node.js ではなくstunnelのようなものを見るべきではないのでしょうか?

于 2012-05-08T10:24:37.510 に答える
2

(参考までに、ServerFaultに関する同様の質問への回答で、これらのポイントのいくつかをすでに説明しました。)

  • MITMプロキシ(つまり、クライアントがそれらを信頼するように構成されている場合に機能する独自の証明書を使用してSSLコンテンツの内部を調べることができるプロキシ)を使用している場合は、完全に透過的ではありません。少なくとも、証明書を信頼するようにクライアントを構成する必要があります。

    さらに、すべてのクライアントがサーバー名表示拡張機能を使用しない限り、プロキシ自体は、証明書を発行するホストを確実に決定できません(通常のHTTPSプロキシは、CONNECTによって発行された要求を確認することで知ることができます。クライアント)。

  • MITMプロキシを使用していない場合は、ルーターを介して最初の接続を許可することをお勧めします。そのトラフィックを記録する場合は、ルーターが暗号化されたパケットをログに記録できる可能性があります。

    ルーターにSSL/TLSパケットをキャッチさせて、プロキシに透過的に送信させます。プロキシは、トラフィックをそのままターゲットサーバーに中継するだけで済みますが、あまり意味がありません。(本質的に、透過プロキシは、クライアントがそれを認識するように構成されていないことを意味するためCONNECT、要求されたホストとポートを持つことができたメソッドを送信することさえありません。ここでは、実際にはこれ以上何もありません。ルーターができることよりも。)

    編集:繰り返しになりますが、HTTPプロキシを使用して接続のコンテンツを透過的に分析することはできません。通常のプロキシを使用している場合でも、HTTPS接続はターゲットサーバーに直接中継されます。SSL / TLS接続自体は、元のクライアントとターゲットサーバーの間で確立されます。SSL / TLSを使用するポイントは、この接続を保護し、接続の内部を調べようとしている場合にクライアントに通知することです。

    プレーンHTTP透過プロキシサーバーが機能するのは、(a)トラフィックを確認できるため(特に、要求行とHTTPHostヘッダーが表示されているため、プロキシが自分自身を作成する要求を認識できるため)、(b)トラフィックを透過的に変更できるためです。これにより、最初のクライアントは、リクエストが直接ではないことに気付かず、あたかもそうであるかのように機能します。

    これらの条件はどちらもHTTPSには当てはまりません。HTTPプロキシを通過するHTTPS接続は、CONNECTコマンドを送信し、そのようなプロキシを使用するように構成されたクライアントからの明示的な要求の後、単にトンネルになります。

    目的に近いことを行うには、SSL/TLS接続を受け入れてHTTPプロキシの前にそれを解読するSSL/TLSサーバー(おそらくSTunnelのようなもの)が必要です。ただし、適切な証明書を生成できないため、これは透過的ではありません。

于 2012-05-11T01:16:20.373 に答える