fragen stichworte

Richten Sie IIS als Forward-Proxy für HTTPS-Anforderungen ein

Ist es möglich, IIS als Forward-Proxy für HTTPS-Anfragen einzurichten?

Mein Anwendungsfall ist folgender: Ich habe lokal einen Prozess auf dem IIS-Computer ausgeführt, der HTTP-Aufrufe, aber keine HTTPS-Aufrufe ausführen kann. Ich möchte IIS so einrichten, dass ich eine HTTP-Anfrage an ihn senden kann (auf localhost) und IIS würde dann die Anfrage als eine HTTPS-Anfrage an die reale URL weiterleiten (mit einer Art von Zuordnung basierend auf der ursprünglichen URL).

So:

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

Ist das möglich? Dieser Link (http://www.iis.net/learn/extensions/configuring-application-request-routing-(arr)/creating-a-forward-proxy-using-application-request-routing ) sagt "Beachten Sie, dass ARR nur HTTP-Verkehr verarbeitet, keine anderen Protokolle. ARR unterstützt nicht das Verb HTTP CONNECT und unterstützt daher nicht die Weiterleitung von HTTPS-Verkehr." aber vielleicht gibt es andere Möglichkeiten, dies auf IIS zu erreichen?

antworten

Das ist eigentlich ziemlich einfach und ein Fall für das SSL-Offloading.

  1. Installieren Sie Application Request Routing (ARR) und URL Rewrite mit Web Plattform Installer, starten Sie Ihren IIS Manager neu.

  2. Jetzt sollten Sie einen Server Farms -Eintrag in der IIS-Manager-Struktur sehen. Wenn Sie Server 1 with the IP 192.168.1.1 als HTTP und Server 2 with the IP 192.168.1.2 als exposed HTTPS Endpoint haben, richten Sie einfach eine Serverfarm ein, fügen Sie Server 1 hinzu (nach IP oder lokalem DNS-Namen muss Server 2 aufgelöst werden können) der Name von Server 1). Fügen Sie der Webfarm keinen Server 2 hinzu. Sie werden aufgefordert, die automatische Erstellung einer Rewrite-Regel zuzulassen, um die Anfragen ordnungsgemäß weiterzuleiten. *

  3. Erstellen Sie eine Standardwebsite mit der SSL-Bindung an Server 2 (möglicherweise mit einem SNI-Hostnamen, wenn Sie mehr als eine Website auf dem IIS hosten).

  4. Klicken Sie dann auf den Server selbst (im IIS-Manager) und gehen Sie zum Modul "URL Rewrite". Dort finden Sie das neue Rewrite-Modul namens ARR_ [ServerFarm] _Loadbalance. Doppelklicken Sie auf die Regel und fügen Sie unter Bedingungen {HTTPS} (Eingabe) hinzu, die dem Muster on (Muster) entspricht.

Unter Aktion wählen Sie Aktionstyp Route to Server Farm und legen Sie Ihre Aktionseigenschaften auf Scheme: http://, Server farm: [YourServerFarmName] fest und lassen Sie den Pfad unberührt. Sie können dann auch Stop processing of subsequent rules ankreuzen, wenn das nicht bereits markiert ist.

* HINWEIS: Wenn auf diesem Server bereits andere Websites (möglicherweise mit SNI) ausgeführt werden, sollten Sie in der Regel zum erneuten Schreiben eine weitere Bedingung hinzufügen, um nur an die Serverfarm zu senden, wenn die entsprechende URL abgefragt wird. Die Bedingung ist {HTTP_HOST} entspricht dem Muster yoururl.com.

Ich hoffe, das hilft.