Wie man HTTP auf HTTPS unter IIS (Windows Server) umleitet

Nach der Installation eines SSL-Zertifikats auf Ihrer IIS-Website möchten Sie sicherlich, dass alle Besucher automatisch auf die sichere HTTPS-Version weitergeleitet werden. Eine Weiterleitungsregel einzurichten ist ratsam. Aber glauben Sie mir, es ist nicht immer einfach – insbesondere, wenn IIS Fehler wie 403.4 Forbidden ausgibt oder die Weiterleitung gar nicht funktioniert. Das Problem ist, dass IIS manchmal mit den SSL-Einstellungen in Konflikt gerät oder Sie vergessen, die web.config-Datei korrekt anzupassen. Daher finden Sie hier eine kurze Anleitung, die Ihnen hoffentlich einige Probleme erspart.

Wie man IIS so konfiguriert, dass alle HTTP-Anfragen auf HTTPS umgeleitet werden

Methode 1: Einrichten einer Umleitungsregel mithilfe des URL-Rewrite-Managers

Dies ist die gängigste Methode und funktioniert bei korrekter Anwendung recht gut. Der Nutzen: Jede Anfrage an Port 80 (HTTP) wird abgefangen und an Port 443 (HTTPS) weitergeleitet. Dies ist vor allem dann relevant, wenn Besucher Ihre Domain ohne „https://“ eingeben. Das Ergebnis? Alle Besucher werden automatisch auf die sichere Version weitergeleitet. Aber Vorsicht: Wenn Ihre Website SSL in den Einstellungen erfordert, kann es bei IIS zu Problemen mit der Weiterleitung kommen.

Stellen Sie zunächst sicher, dass Sie das URL-Rewrite-Modul 2.1 für IIS installiert haben, da dieses die Regeln verarbeitet. Sie können es hier herunterladen. Die Installation kann sich manchmal wie ein Kampf mit Windows anfühlen – schließlich muss Windows die Dinge ja kompliziert gestalten –, aber sobald es installiert ist, können Sie benutzerdefinierte Regeln erstellen.

Konfigurieren Sie Ihre Website für HTTPS und richten Sie die Weiterleitung ein.

  • Öffnen Sie den Internetinformationsdienste-Manager (IIS-Manager). Dies können Sie durch Ausführen von [Befehl einfügen] tun inetmgr.
  • Klicken Sie unter dem Menüpunkt „Websites “ auf Ihre Website.
  • Navigieren Sie zu den SSL-Einstellungen Ihrer Website. Stellen Sie sicher, dass „SSL erforderlich“ NICHT aktiviert ist. Andernfalls kann es zu Weiterleitungskonflikten und Fehlern wie „403.4 Forbidden“ kommen. SSL ist zwar erwünscht, aber nicht zu diesem Zeitpunkt, da sonst eine Endlosschleife entsteht.
  • Gehen Sie zum Abschnitt „URL-Rewrite“. Falls dieser nicht angezeigt wird, überprüfen Sie, ob das Modul korrekt installiert wurde.

Erstellen Sie eine neue Umleitungsregel

  • Klicken Sie auf „Regeln hinzufügen“ und wählen Sie dann „Leere Regel“.
  • Nennen Sie es beispielsweise „Weiterleitung zu HTTPS“.
<rule name="Redirect_HTTP_to_HTTPS" patternSyntax="Wildcard" stopProcessing="true"> <match url="*" /> <conditions> <add input="{HTTPS}" pattern="OFF" /> </conditions> <action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" redirectType="Permanent (301)" /> </rule>

In den Regeleinstellungen: – Wählen Sie für „Angeforderte URL“ die Option „.“ – Wählen Sie Matches the Patternfür „VerwendungWildcards “ die Option „.“ – Muster:*

Im Abschnitt „Bedingungen“ :

  • Bedingungseingabe festlegen als {HTTPS}.
  • Prüfen, ob die Eingabezeichenfolge dem Muster entspricht.
  • Muster: OFF— bedeutet, wenn HTTPS nicht aktiv ist.
  • Groß-/Kleinschreibung ignorieren: enabled.

Geben Sie als Nächstes im Abschnitt „Aktion“ Folgendes an:

  • Aktionstyp:Redirect
  • Weiterleitungs-URL:https://{HTTP_HOST}{REQUEST_URI}
  • Umleitungstyp:Permanent (301)

Nachdem Sie diese Regel gespeichert haben, führen Sie sie iisresetüber die Eingabeaufforderung (mit Administratorrechten) aus. Dadurch wird der Cache geleert und die Änderungen werden angewendet. Testen Sie anschließend, indem Sie Ihre Website ohne HTTPS aufrufen und prüfen, ob Sie automatisch auf HTTPS umgeleitet werden.

Kurzer Hinweis: Stellen Sie sicher, dass Ihre web.config-Datei keine widersprüchlichen Regeln enthält. Manchmal ist die direkte Bearbeitung schneller und vorhersehbarer. Hier ist ein Codeausschnitt, den Sie in Ihre web.config-Datei kopieren und einfügen können :

<configuration> <system.webServer> <rewrite> <rules> <rule name="Redirect_HTTP_to_HTTPS" patternSyntax="Wildcard" stopProcessing="true"> <match url="*" /> <conditions> <add input="{HTTPS}" pattern="OFF" /> </conditions> <action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" redirectType="Permanent" /> </rule> </rules> </rewrite> </system.webServer> </configuration>

Ja, diese Konfiguration sollte unter Windows Server 2022, 2019, 2016 und Windows 10/11 mit IIS funktionieren. Eine Garantie für alle Sonderfälle gibt es zwar nicht, aber in den meisten Umgebungen ist sie in der Regel absolut zuverlässig.

Manchmal ist mir schleierhaft, warum das alles so kompliziert ist – IIS kann ganz schön pingelig sein, und SSL-Einstellungen können sich widersprechen. Aber dieser Ansatz ist ziemlich robust, und auf einer Konfiguration hat er einwandfrei funktioniert. Auf einer anderen… eher weniger, also achten Sie auf widersprüchliche Regeln oder SSL-Erzwingungseinstellungen. Mann, ist IIS nervig!

Zusammenfassung

  • URL-Rewrite-Modul installieren
  • Deaktivieren oder passen Sie die SSL-Einstellungen bei Bedarf an.
  • Erstellen Sie eine Umleitungsregel in IIS oder web.config.
  • Ausführen iisresetund testen

Zusammenfassung

Erfahrungsgemäß ist die Einrichtung der Weiterleitung in IIS zuverlässiger als die Verwendung von Autoconf-Skripten oder Drittanbieter-Tools. Wichtig ist nur, dass die Regeln korrekt konfiguriert sind und die SSL-Einstellungen nicht kollidieren. Hoffentlich hilft das, und Ihre Besucher bleiben sicher, ohne ständig URLs anpassen zu müssen.