web-dev-qa-db-ja.com

HTTPSリクエストのフォワードプロキシとしてIISを設定します

IISをHTTPSリクエストのフォワードプロキシとして設定することは可能ですか?

私の使用例は次のとおりです。IISマシンでローカルにいくつかのプロセスを実行していますが、HTTP呼び出しは実行できますが、HTTPS呼び出しは実行できません。IIS(localhostで)HTTP要求を送信できるように、IISは、HTTPS要求として実際のURLに要求を転送します(元のURL)。

このような:

myprogram on server1 <-> http <-> IIS on server1 <-> https <-> server2

これは可能ですか?このリンク( http://www.iis.net/learn/extensions/configuring-application-request-routing-(arr)/ creating-a-forward-proxy-using-application-request-routing =)「ARRは他のプロトコルではなくHTTPトラフィックのみを処理することに注意してください。ARRはHTTP CONNECT動詞をサポートしていないため、HTTPSトラフィックの転送をサポートしていません。」 IISでこれを実現する他の方法があるのでしょうか。

5
w3worker

これは実際には非常に簡単で、SSLオフロードの場合です。

  1. Application Request Routing (ARR)URL RewriteWeb Plattform Installerでインストールし、IIS Managerを再起動します。

  2. これで、IISマネージャツリーにServer Farmsエントリが表示されます。Server 1 with the IP 192.168.1.1HTTPで、Server 2 with the IP 192.168.1.2が公開されている場合HTTPSエンドポイント、サーバーファームをセットアップし、それにServer 1を追加します(IPまたはローカルDNS名によって、Server 2Server 1の名前を解決できる必要があります)。 サーバー2をwebfarmに追加しないでください。要求を適切に転送するための書き換えルールの自動作成を許可するように求められます。*

  3. サーバー2へのSSLバインディングを持つ標準のWebサイトを作成します(IISでホストしているサイトが複数ある場合は、SNIホスト名を使用する可能性があります)。

  4. 次に、サーバー自体(IIS Manager)をクリックし、[URL書き換え]モジュールに移動します。そこに、ARR_ [ServerFarm] _Loadbalanceのような新しい書き換えモジュールがあります。ダブルクリックします。ルールの[条件]に、パターンon(パターン)に一致する{HTTPS}(入力)を追加します。

[アクション]で、アクションタイプRoute to Server Farmを選択し、アクションプロパティをScheme: http://Server farm: [YourServerFarmName]に設定し、パスはそのままにします。まだチェックされていない場合は、Stop processing of subsequent rulesをチェックすることもできます。

*注:このサーバーで(おそらくSNIを使用して)既に他のWebサイトを実行している場合は、対応するURLが照会された場合にのみ、サーバーファームにのみ転送するように書き換えルールに別の条件を追加する必要があります。条件は{HTTP_Host}で、パターンはyoururl.comに一致します。

お役に立てば幸いです。

2
marcus.braun