IIS URL Rewrite: HTTP zu HTTPS weiterleiten
Der Microsoft Internet Information Server (IIS) bietet von Haus aus keine einfache Möglichkeit, HTTP-Anfragen automatisch auf HTTPS weiterzuleiten. Das URL Rewrite-Modul schließt diese Lücke und ermöglicht flexible Weiterleitungsregeln – ähnlich wie mod_rewrite bei Apache.
URL Rewrite Modul installieren
Das URL Rewrite-Modul ist kein Bestandteil der IIS-Standardinstallation und muss separat heruntergeladen werden. Microsoft stellt es kostenlos bereit:
– 64-Bit: rewrite_amd64_en-US.msi von der Microsoft IIS-Downloadseite
– 32-Bit: rewrite_x86_en-US.msi für 32-Bit-Systeme
Nach der Installation erscheint URL Rewrite im IIS-Manager als neues Feature-Icon. Der IIS-Dienst muss nach der Installation nicht neu gestartet werden.
web.config für HTTP-zu-HTTPS-Weiterleitung
Die Rewrite-Regeln werden in der web.config-Datei definiert, die im Stammverzeichnis der Website liegt (C:inetpubwwwrootweb.config). Wenn noch keine web.config existiert, legt man sie neu an:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="HTTP to HTTPS Redirect" enabled="true" stopProcessing="true">
<match url="(.*)" />
<conditions logicalGrouping="MatchAll">
<add input="{HTTPS}" pattern="^OFF$" />
</conditions>
<action type="Redirect"
url="https://{HTTP_HOST}/{R:1}"
redirectType="Permanent" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
Diese Konfiguration leitet alle HTTP-Anfragen mit einem permanenten 301-Redirect auf die entsprechende HTTPS-URL weiter. Der {HTTP_HOST}-Platzhalter übernimmt den originalen Hostnamen, {R:1} den vollständigen Pfad nach dem Slash.
Erweiterte Konfiguration: Bestimmte Pfade ausschließen
In manchen Szenarien möchte man bestimmte Pfade von der Weiterleitung ausschließen – z. B. einen Let’s-Encrypt-Challenge-Pfad:
<rule name="HTTP to HTTPS Redirect" enabled="true" stopProcessing="true">
<match url="(.*)" />
<conditions logicalGrouping="MatchAll">
<add input="{HTTPS}" pattern="^OFF$" />
<add input="{URL}" pattern="^/.well-known/" negate="true" />
</conditions>
<action type="Redirect"
url="https://{HTTP_HOST}/{R:1}"
redirectType="Permanent" />
</rule>
HSTS-Header hinzufügen
Nach der Einrichtung des Redirects empfiehlt sich zusätzlich der HSTS-Header (HTTP Strict Transport Security), der Browsern mitteilt, die Website künftig immer direkt über HTTPS anzusprechen:
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Strict-Transport-Security"
value="max-age=31536000; includeSubDomains; preload" />
</customHeaders>
</httpProtocol>
</system.webServer>
Konfiguration über den IIS-Manager (GUI)
Alternativ zur manuellen web.config-Bearbeitung kann man die Regel über den IIS-Manager anlegen: Website auswählen → URL Rewrite doppelklicken → „Regel hinzufügen“ → „Leere Regel“. Die grafische Oberfläche generiert automatisch den web.config-Eintrag. Für Administratoren, die selten mit Rewrite-Regeln arbeiten, ist das die übersichtlichere Option.
Fazit
Das IIS URL Rewrite-Modul ist ein unverzichtbares Werkzeug für jeden IIS-Administrator. Die HTTP-zu-HTTPS-Weiterleitung ist in wenigen Minuten eingerichtet und verbessert sowohl Sicherheit als auch SEO der Website. In Kombination mit HSTS ist die Website dauerhaft gegen unverschlüsselte Verbindungen abgesichert.


