Schritt für Schritt: Windows Server 2019 (IIS 10) als Reverse Proxy mit SSL-Offloading installieren

Windows Server mit dem IIS ist ein ausgezeichneter reverse Proxy und eigentlich auch schnell eingerichtet.

Diese Anleitung geht davon aus das …

  • Es einen installierten Windows Server 2019 gibt
  • Ein passendes SSL-Zertifikat mit korrektem CN existiert
    • Wenn der Webserver im Internet erreichbar ist, tut es natürlich auch Let’s Encrypt
  • Ein Webserver der über diesen reverse Proxy erreichbar sein soll existiert und auch wirklich von diesem Server erreichbar ist

IIS mit passenden Features installieren

Server Manager > Rollen und Features hinzufügen > „Rollenbasierte oder featurebasierte Installation“ > Server auswählen > „Webserver (IIS)“ und die gewünschten Funktionen hinzufügen. Obligatorisch ist die „IIS-Verwaltungskonsole“

Oder (als Minimalinstallation) an der PowerShell:

Install-WindowsFeature -name Web-Server –IncludeManagementTools

IIS ARR 3.0 (Application Request Routing) installieren

ARR 3.0 (mit URLRewrite) herunterladen und installieren: https://www.iis.net/downloads/microsoft/application-request-routing

Zertifikat im Windows Zertifikatsspeicher installieren

Doppeklick auf das *.pfx > Lokaler Computer > Weiter > Speicher automatisch auswählen / Kennwort eingeben > Weiter > Fertigstellen

IIS Proxy Dienste einschalten

„Internetinformationsdienste (IIS)-Manager“ (IIS-Konsole) öffnen > Links erster Punkt „Servername“ > Rechte Hälfte „Applicatin Request Routing Cache“ öffnen

In der Taskpane unter „Proxy“ > „Server Proxy Settings“ > Enable Proxy. Ganz unten sollte „Enable SSL Offloading“ eingeschaltet sein.

Tipp: Der X-Forwarded-For Header ist für viele Anwendungen (vor allem Java-Apps) wichtig. Der IIS verbietet im ARR standardmäßig aber alle Header, für die es keine Serverweite Erlaubnis gibt. Wie man eigene Header, zum Beispiel X-Forward-For, im IIS zulässt steht in diesem Artikel: https://www.ugg.li/iis-reverse-proyxy-http-header-setzen-zeigt-nur-fehler-500-seiten/ Wir raten dazu, den Header für Reverse Proxies zu erlauben.

IIS Site anlegen

Es ist zwar zwingend nötig eine neue Site anzulegen, wir raten aber als „best Practice“ dazu, für jede Bindung eine eigene Site mit eigener Konfiguration anzulegen. Die Default Site (ID #1) wird nämlich gerne von Drittsoftware verwendet oder verändert.

„Internetinformationsdienste (IIS)-Manager“ (IIS-Konsole) öffnen > Servername > Sites > Website hinzufügen

  • Sitename: <www.example.com> (Anzeigename)
  • Physischer Pfad: <c:\inetpub\www.example.com> (Pfad zur Konfiguration, exklusiv für jede Site anlegen)
  • Typ: https
  • IP-Adresse: „Keine zugewiesen“
  • Hostname: <www.example.com> (URL, muss zum CN im Zertifikat passen)

IIS Site zum Reverse Proxy umstellen

„Internetinformationsdienste (IIS)-Manager“ (IIS-Konsole) öffnen > Servername > Sites > <www.example.com> > „URL Rewrite“ > Regeln hinzufügen > „Reverseproxy“ > Ziel eingeben (hier im Beispiel ein Webserver auf dem localhost auf Port 8080

Optional: HTTPS Redirect Regel erstellen

Um HTTP-Anfragen nun automatisch auf HTTPS weiterzuleiten (via HTTP 30x), kann man nun eine weitere Regel zur Site hinzufügen.

„Internetinformationsdienste (IIS)-Manager“ (IIS-Konsole) öffnen > Servername > Sites > <www.example.com> > „URL Rewrite“ > Regeln hinzufügen > Leere Regel

  • Name: HTTPS-Redirect
  • Übereinstimmung mit URL
    • Angeforderte URL: „Entspricht dem Muster“
    • Unter verwendung von: „Reguläre Ausdrücke“
    • Muster: (.*)
    • Groß-/Kleinschreibung ignorieren
  • Bedingungen > Hinzufügen
    • Bedingungseingabe: {HTTPS}
    • Überprüfen, ob die Eingabezeichenfolge: „Entspricht dem Muster“
    • Muster: ^OFF$
    • Groß-/Kleinschreibung ignorieren
  • Aktionen
    • Aktionstyp: Umleiten
    • Aktionseigenschaften > „URL Umleiten“: https://{HTTP_HOST}/{REQUEST_URI}
    • Abfragezeichenfolge anhängen
    • Umleitungstyp: Dauerhaft
    • … ✔ Übernehmen

One Reply to “Schritt für Schritt: Windows Server 2019 (IIS 10) als Reverse Proxy mit SSL-Offloading installieren”

  1. fyi: über den Powershell Befehl wird zumindestens unter W2k22 erstmal nicht das benötigte „HTTP-Umleitung“ mit installiert, falls man an dem Punkt hängen bleiben sollte 🙂

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.