Reverse Proxy mit IIS

Heute zeige ich euch wie man einen IIS als Reverse Proxy einrichtet.

Ein Reverse Proxy leitet Anfragen aus dem Internet zu einem Server im Lokalen Netzwerk um.

Ein Vorteil ist, dass man somit mehrere Webserver an einen Port betreiben kann was auch das Zertifizieren vereinfacht.

Hier habe ich eine Windows Server 2019 Installation. Port 80 und 443 sind bereits geöffnet.

Jetzt gehen wir im Server-Manager auf „Verwalten“ und dann auf „Rollen und Features hinzufügen“

Jetzt klicke ich auf „Weiter“ bis die Auswahl der zu installierenden Server-Rollen kommt.

Dann setzt ich einen Hacken bei „Webserver(IIS)“ und klicke auf „Features hinzufügen“ wenn ich gefragt werde ob ich die Verwaltungskonsole installieren will.

Jetzt klicke ich auf „Weiter“ bis ich zur Auswahl der Rollendienste für IIS komme.

Hier wähle ich HTTP-Umleitung. Das ist für den Reverse Proxy keine Voraussetzung aber trotzdem nützlich.

Ich klicke auf „Weiter“ und auf „Installieren“

Nach der Installation des IIS kann man gleich ein gültiges Zertifikat zuweisen. Wie das sehr einfach und kostenlos mit Certify funktioniert zeige ich euch hier.

Jetzt brachen wir noch ein PlugIn für IIS von Microsoft namens Microsoft Application Request Routing. Dass könnt ihr hier downloaden.

Die Installation ist sehr simpel. Einfach das Setup starten, dann klicken wir auf „Installieren“ und auf „Ich stimme zu“.

Nach der Installation klicken wir auf „Fertig stellen“ und auf „Beenden“

Jetzt können wir den IIS-Manager öffnen. Der ist im Startmenü unter Windows-Verwaltungsprogramme. Wir klicken Links bei Verbindungen auf unseren Server und in der Verwaltungsübersicht auf „Application Request Routing Cache“

Rechts bei Aktionen klicke ich auf „Server Proxy Settings…“

In diesem Menü setzen wir den Haken bei „Enable proxy“ und dann rechts auf „Übernehmen“ mehr müssen wir hier nicht machen.

Jetzt können wir eine neue Site erstellen. Dazu klicken wir mit einen Rechtsklick auf Sites und dann auf „Website hinzufügen…“

Hier geben wir der Site einen Namen und einen Pfad auf den Server für die Site. Hier wird dann nur die Konfiguration gespeichert also passt die Pass-Through-Authentifizierung. Bei Hostname gebe ich die Domain ein die auf meine Öffentliche IP weist und für die ich ein Zertifikat habe. Und bei der Bindung wähle ich in meinen Fall https und gleich ein Zertifikat. Dann klicken wir auf „OK“

Jetzt klicken wir auf die neue Site und auf „URL Rewrite“

Hier klicken wir rechts bei Aktionen auf „Regel(n) hinzufügen…“ und hier wählen wir „Reverseproxy“ aus.

In diesem Fenster gebe ich die Lokale IP des Webservers ein den ich umleiten will. Dann klicke ich auf „OK“.

Das war schon alles. Wenn ich nun in einen Browser auf meine Domain zugreife, greife ich direkt auf den Webserver in meinen Lokalen Netzwerk zu. In meinen Fall sogar mit einem gültigen Zertifikat. (Was für mich auch der Hauptgrund ist, warum man einen Reverse Proxy einrichten sollte)

Da ich ein Wildcard Zertifikat habe, kann ich jetzt natürlich auch mehrere Sites erstellen, mit einem Zertifikat absichern und damit mehrere Lokale Webserver öffentlich machen.

Um jetzt mehrere Sites und verschiedene Bindungen anzulegen (als Subdomänen wie zb. Blog.HIERDOMÄNE.de) muss ich bei meinen Domain Provider oder DNS Server eine Subdomäne anlegen und einen CNAME Eintrag setzen, der wieder auf meine Öffentliche IP weist. Dann kann ich, wenn ich eine Site anlege, bei Hostname meine Domäne inclusive Subdomäne angeben.