32

(||任意の) プロキシ サーバーは、クライアントが https 経由で要求したコンテンツをキャッシュできますか? プロキシ サーバーはクエリ文字列や http ヘッダーを認識できないため、認識できないと思います。

私は、会社のプロキシの背後にある多くの人々によって実行されるデスクトップ アプリケーションを検討しています。このアプリケーションはインターネット経由でサービスにアクセスする可能性があり、「読み取り」用に組み込みのインターネット キャッシュ インフラストラクチャを利用したいと考えています。キャッシング プロキシ サーバーが SSL で配信されたコンテンツをキャッシュできない場合、応答のコンテンツを単純に暗号化することは実行可能なオプションでしょうか?

キャッシュ可能にしたいすべてのGETリクエストは、各クライアントが復号化キーを持っている非対称暗号化を使用して暗号化された本文でhttp経由でリクエストすることを検討しています。キャッシュできない GET や POST 操作を実行したい場合はいつでも、SSL 経由で実行されます。

4

4 に答える 4

28

厳密に真実でない場合、プロキシは自己署名証明書を使用する必要があるという Rory のコメント。

プロキシを実装して、処理が求められる新しい SSL ホストごとに新しい証明書を生成し、共通のルート証明書で署名することができます。企業環境の OP のシナリオでは、一般的な署名証明書を信頼できる CA としてクライアント マシンに簡単にインストールでき、ホスト名の不一致がないため、プロキシされるトラフィックに対してこれらの「偽の」SSL 証明書を喜んで受け入れます。

実際、これはまさに、 Charles Web Debugging Proxyなどのソフトウェアが、ブラウザなどでセキュリティ エラーを引き起こすことなく SSL トラフィックを検査できる方法です。

于 2008-08-23T00:19:47.663 に答える
24

いいえ、https を直接キャッシュすることはできません。クライアントとサーバー間の通信全体が暗号化されます。プロキシはサーバーとクライアントの間にあります。プロキシをキャッシュするには、それを読み取る、つまり暗号を解読できる必要があります。

あなたはそれをキャッシュするために何かをすることができます。基本的に、プロキシで SSL を実行し、クライアントに送信された SSL をインターセプトします。基本的に、データはクライアントとプロキシの間で暗号化され、復号化され、読み取られてキャッシュされ、データは暗号化されてサーバーに送信されます。サーバーからの応答も同様に復号化され、読み取られ、暗号化されます。主要なプロキシ ソフトウェア (squid など) でこれを行う方法はわかりませんが、可能です。

このアプローチの唯一の問題は、プロキシが自己署名証明書を使用してクライアントに暗号化する必要があることです。証明書は元のサイトからのものではないため、クライアントは中間のプロキシがデータを読み取ったことを知ることができます。

于 2008-08-18T14:24:39.477 に答える
1

SSLを使用し、キャッシュを行うHTTPクライアントライブラリに依存する必要があると思います(例:WindowsのWinInet)。企業全体のキャッシングの利点が、カスタムのセキュリティ暗号化スキームや証明書をプロキシで作成する手間に見合うものであるとは想像しがたいです。さらに悪いことに、あなたが言及した暗号化方式では、エンティティ本体で非対称暗号を実行すると、アプリケーションのサーバー側で大きなパフォーマンス ヒットが発生するように聞こえます。SSL が接続の実際のペイロードに対称暗号を使用するのには理由があります。

于 2008-08-23T01:01:24.677 に答える
0

https 応答を暗号化するコンポーネントの背後にあるアプリケーション サーバーにサーバー キャッシュを設定するのはどうですか? これは、リバース プロキシの設定がある場合に役立ちます。

私はこのようなことを考えています:

application server <---> Squid or Varnish (cache) <---> Apache (performs SSL encryption)
于 2010-05-18T21:26:12.057 に答える