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でこれを実現する他の方法があるのでしょうか。
これは実際には非常に簡単で、SSLオフロードの場合です。
Application Request Routing (ARR)
とURL Rewrite
をWeb Plattform Installer
でインストールし、IIS Managerを再起動します。
これで、IISマネージャツリーにServer Farms
エントリが表示されます。Server 1 with the IP 192.168.1.1
がHTTP
で、Server 2 with the IP 192.168.1.2
が公開されている場合HTTPS
エンドポイント、サーバーファームをセットアップし、それにServer 1
を追加します(IPまたはローカルDNS名によって、Server 2
はServer 1
の名前を解決できる必要があります)。 サーバー2をwebfarmに追加しないでください。要求を適切に転送するための書き換えルールの自動作成を許可するように求められます。*
サーバー2へのSSLバインディングを持つ標準のWebサイトを作成します(IISでホストしているサイトが複数ある場合は、SNIホスト名を使用する可能性があります)。
次に、サーバー自体(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
に一致します。
お役に立てば幸いです。