3

最初に、モジュール mod_proxy_connect を使用して行うことができる https を使用して配信するオリジン サーバー上のコンテンツへのアクセスについて話しているのではないことを明確にしたいと思います。

私が望むのは、クライアントとプロキシ間の安全な接続です。また、実際に要求されたオリジンが安全でない標準の http サーバーによって提供される場合も同様です。

私はApache 2.2を使用していますが、Apacheでこれを可能にしたいと考えています。

Wireshark を使用していくつかのリクエストを傍受し、次の点に注意しました。

URL http://example.com/fileの通常の http は次のようになります。

オリジンサーバーへの接続時:

GET /file HTTP 1.1
Host: example.com

ホスト情報は実際のリクエストから取り除かれ、代わりにホスト ヘッダーが提供されることに注意してください (名前付き仮想ホストでサーバー側で処理できます)。

リクエストがプロキシ サーバーを通過する場合は、わずかに異なるように見えます。

プロキシ サーバーへの接続時:

GET http://example.com/file HTTP 1.1
Host: example.com

リクエスト行には、実際にはプロトコルとホスト名を含む完全な URL が含まれていることに注意してください。ホスト ヘッダーはおそらく冗長です。バスの RFC を正しく読むと、HTTP 1.1 で必要になります。

したがって、ポート443でリッスンするApache Webサーバーをセットアップし、sslエンジンと証明書を使用して仮想ホストを有効にし、ホスト名にバインドしないことを考えています。

Apache が ssl と通信できるようにする必要があると思いますが、証明書の共通名は、プロキシ サーバーの IP アドレスへの接続行で指定されたホストと一致しません。

私がやりたいことは現在の標準でも可能ですか?もしそうなら、どうすればそれを行うことができますか?

4

1 に答える 1

2

はい、もちろん、それが HTTPS プロキシです。

クライアントは SSL 経由でプロキシに接続し、テキストでコマンドをプロキシに送信します。

すべてのクライアントがこれをサポートしているわけではありませんが、HTTP CONNECT を使用して、HTTPS プロキシへの SSL 接続の「内部」で HTTPS 接続を確立することもできます。

HTTPS connection over HTTPS proxy
client           proxy           server
ssl    \-------/   ssl
connect---------200 OK
ssl  \---------------------------/ ssl
data-------------------------------data
     /---------------------------\
       /-------\



HTTP connection over HTTPS proxy
client           proxy           server
ssl    \-------/   ssl
GET http://server/ ->
                       GET / 
                       Host: server ->
                       <---------OK, data
<--------------OK, data
       /-------\
于 2013-12-02T14:11:29.430 に答える