Möchten Sie einen Web-Service, der nur per HTTP kommuniziert per HTTPS absichern, ist die Einrichtung von IIS als Reverse Proxy eine Lösung. Ein Reverse Proxy kann auch verwendet werden, wenn wir uns die Verwendung verschiedener Zertifikate mit verschiedenen Web-Services ersparen möchten. Dann hinterlegen wir einmalig das Zertifikat im Reverse Proxy und dieser leitet alle Anfragen per HTTP an die einzelnen Web-Services weiter.
Index
Was ist ein Reverse Proxy? Um es relativ einfach zu beschreiben ist ein Reverse Proxy ein Netzwerkgerät, das Anfragen, z.B. aus dem Internet, entgegennimmt und an einen oder mehrere interne Server weiterleitet, ohne dass diese dem Aufrufer bekannt sind.
Zweck des Artikels
In diesem Artikel wird die Einrichtung des IIS als Reverse Proxy beschrieben, um einen Webservice von außen per https über den Port 8585 zugänglich zu machen. Intern wird der Webservice über den Port 8686 angesprochen.
Voraussetzungen
- ein installierter Microsoft Internet Information Services (IIS)
- SSL Zertifikat für den HTTPS Zugriff
- Application Request Routing (ARR) ab Version 3
- URL Rewrite Modul für IIS ab Version 2
Konfiguration des IIS
Self-Signed Zertifikat erstellen
Für den Zugriff per HTTPS von ISS auf den Reverse Proxy ist ein Zertifikat notwendig. Wenn wir keines vorliegen haben, können wir uns das Zertifikat mithilfe des IIS selbst erstellen. Dazu wählen wir im Internet Information Services (IIS) Manager den Server aus und klicken im rechten Bildschirmbereich auf den Punkt “Server Certificates”.
Im Arbeitsbereich “Server Certificates” wählen wir im Actions-Menü den Eintrag “Create Self-Signed Certificate” aus.
Daraufhin erscheint ein Wizard, der durch den einzigen Arbeitsschritt zur Anlage eines Zertifikates führt. Wir müssen hier lediglich einen aussagekräftigen Namen für das Zertifikat angeben sowie den Store auswählen, in dem das Zertifikat gespeichert wird. In der Regel kann hier “Personal” übernommen werden.
Installation der Komponenten
Für die Installation der Module “Application Request Routing” und des “URL Rewrite” verwenden wir am besten den Microsoft Web Platform Installer.
Ist dieser im IIS noch nicht installiert, gelangen wir über die Action “Get New Web Platform Components” auf die Microsoft Seite, von der wir den Installer herunterladen und installieren können.
Nach der Installation können wir den Web Platform Installer entweder
- über einen neuen Eintrag im Dashboard des IIS oder
- über das Windows Startmenü aufrufen.
Im Suchfeld des Web Platform Installer suchen wir nach “Application Request Routing” und des “URL Rewrite”. Wenn wir die Module gefunden haben, fügen wir diese per Klick auf “Add” zur Liste der zu installierenden Module hinzu.
Beim Application Request Routing Modul ist zu beachten, dass wir die Version 3.x installieren, da diese die neueste Version ist.
Wurden alle benötigten Module ausgewählt, wird die Installation per Klick auf “Install” gestartet. Bei der Installation erfolgt noch die übliche Abfrage der Zustimmung zu den Lizenzbedingungen, die wir bestätigen.
Nach erfolgreicher Installation der Module, sollte der unten abgebildete Dialog angezeigt werden.
Einrichten des IIS
Nachdem wir die Vorbereitungen erfolgreich abgeschlossen haben, geht es jetzt an die Einrichtung des IIS, damit dieser als Reverse Proxy verwendet werden kann.
Neue Site erstellen
Für die Einrichtung des IIS als Reverse Proxy ist eine neue Website erforderlich, die wir über “Add Website” im IIS anlegen.
Nach dem Klick auf “Add Website” wird der Wizard für die Anlage einer neuen Website angezeigt.
Der Name der Website sollte ihrer Funktion entsprechen, damit wir diese von der normalen Website unterscheiden können.
Als physikalischen Pfad geben wir ein Verzeichnis auf der Festplatte an, in dem später vom IIS die Konfiguration für die Weiterleitung gespeichert wird. Der Web-Service selbst kann in einem separaten Verzeichnis gespeichert sein.
Beim Binding muss als Typ “https” ausgewählt werden, denn der Web-Service soll von außen nur über eine gesicherte Verbindung erreichbar sein. Wenn nichts anderes gewünscht wird, können wir die Einstellung der IP Adresse übernehmen und vergeben noch einen Port, über den später der Web-Service erreicht werden soll. In unserem Fall ist dies der Port 8585. Zusätzlich kann auch ein Hostname angegeben werden.
Da wir per https auf den Web-Service zugreifen möchten, muss unter “SSL certificate” das Zertifikat ausgewählt werden, welches erstellt wurde.
Einrichtung der Weiterleitungen
Anlage von Weiterleitungsregeln
Bis jetzt wurde der IIS nur darauf vorbereitet, dass er Anfragen an den Port 8585 per https entgegen nimmt. Der Web-Service auf den zugegriffen werden soll, ist bis jetzt immer noch nicht erreichbar. Deshalb werden im nächsten Schritt zwei Weiterleitungsregeln erstellt.
Dazu rufen wir im Dashboard der neu angelegten Website “ReverseProxy-Site” den Eintrag “URL Rewrite” auf. Wichtig hierbei ist, dass Sie für die nächsten Schritte die neu angelegte Website verwenden. Würden Sie stattdessen die Default Web Site verwenden und dort bereits ein Binding auf den Port 8585 angelegt haben, wäre diese Seite nicht mehr erreichbar.
Mit einem Klick auf “Add Rules” starten wir den Wizard.
Auf der ersten Seite des Wizard wird als Template “Reverse Proxy” ausgewählt und mit “Ok” übernommen.
Auf der zweiten Seite des Wizard geben wir den Hostnamen oder die IP-Adresse inklusive den Port an, auf den wir den User weiterleiten möchten. In unserem Beispiel ruft der User die Url https://dachweb02.demo.net:8585 auf und soll intern an den Port 8686 weitergeleitet werden. Der Port kann auch weggelassen werden, wenn wir den User an einen anderen Server weiterleiten möchten und den Standardport verwenden möchten.
Da in unserem Beispiel eine unverschlüsselte Weiterleitung erfolgen soll, muss die Option “Enable SSL Offloading” aktiviert sein.
Mit einem Klick auf “Ok” wird die Regel angelegt. Bevor die Detail-Konfiguration der Regel erfolgen kann, muss noch eine zweite Regel mit den gleichen Einstellungen angelegt werden.
Konfiguration der ersten Weiterleitungsregel
Über “Edit” oder per Doppelklick wird die Bearbeitungsseite der ersten Regel aufgerufen.
Unter “Match Url” wird als regulärer Ausdruck ^(.+)s://<DNS NAME>(.*) eingetragen. Der Platzhalter <DNS NAME> im Ausdruck muss durch den Hostnamen oder die IP Adresse ersetzt werden, die weitergeleitet werden soll. In unserem Beispiel sieht der reguläre Ausdruck so aus:
1 |
^(.+)s://dachweb02.demo.net(.*) |
Mit Hilfe des Ausdruckes werden alle Anfragen die mit “https://dachweb02.demo.net” beginnen, durch diese Regel verarbeitet.
Die Url, an die weitergeleitet wird, ist unter “Action” im Feld “Rewrite URL” bereits angegeben und muss in der Regel nicht mehr geändert werden. Die Url Angabe wurde aus den Informationen übernommen, die bei der Anlage der Regel eingegeben wurden.
Alle anderen Einstellungen können übernommen werden. Wichtig ist noch, dass der Haken bei “Stop processing of subsequent rules” gesetzt ist. Damit werden keine anderen Regeln angewendet, wenn die Anfrage bereits durch diese Regel verarbeitet wurde.
Die Änderungen werden mit “Apply” gespeichert.
Konfiguration der zweiten Weiterleitungsregel
Die zweite Regel wird für Anfragen genutzt, die durch die erste Regel nicht verarbeitet werden. Öffnen Sie auch diese Regel per Doppelklick.
Unter “Match Url” sollte als regulärer Ausdruck (.*) angegeben sein. Ist dies nicht der Fall, so muss der Ausdruck geändert werden.
Die Url, an die weitergeleitet wird, ist unter “Action” im Feld “Rewrite URL” ebenfalls bereits angegeben und muss in der Regel nicht mehr geändert werden.
Alle anderen Einstellungen können auch hier übernommen werden. Wichtig ist ebenfalls wieder, dass der Haken bei “Stop processing of subsequent rules” gesetzt ist.
Die Änderungen werden wieder mit “Apply” gespeichert.
Fazit
Wurden die beiden Regeln erstellt, kann die Weiterleitung zum Beispiel mithilfe eines API-Clients getestet werden.
Leave a Reply
<p>Danke für Ihre Anregungen, Fragen und Hinweise.<br/>Infos zum <a href="https://www.active-directory-faq.dekontakt/">Datenschutz</a></p>