HTTP automatisch auf HTTPS umleiten mit IIS 10 auf Windows Server 2016

Weil IT-Sicherheit wichtig ist

IT Sicherheit ist heute ein großes Thema. Um den Besuchern einer Webseite ein gutes Gefühl zu geben, ist es empfehlenswert, Webseiten zu verschlüsseln. Spätestens wenn Kundendaten (Benutzername, Passwort, persönliche Daten…) auf der Webseite eingegeben werden, ist Verschlüsselung zwangsweise erforderlich um den Ansprüchen an Datenschutz gerecht zu werden. Dieser Artikel zeigt auf, wie alle Anfragen an einen IIS verschlüsselt werden können.

Voraussetzungen:

Es ist vorausgesetzt, dass bereits ein Server mit Microsofts Windows Server 2016 und dem aktuellen IIS 10 eingerichtet wurde, sodass sowohl auf http wie auch auf https Anfragen die fragliche Webseite erreichbar ist.
Sollte dies noch nicht gegeben sein, helfen die folgenden Artikel:

IIS 10 auf Windows Server 2016 installieren
Mit Let’s Encrypt ein Zertifikat für IIS 10 ausstellen und es einer Domain zuordnen

Außerdem sollte der Server nicht über einen LoadBalancer mit SSL offloading, sondern stattdessen direkt angesprochen werden. Wird ein LoadBalancer mit SSL offloading wie zum Beispiel der kostenlose LBaas von gridscale verwendet, hilft dieser Artikel weiter.

Server vorbereiten:

Bevor mit der Konfiguration begonnen werden kann, muss noch ein weiteres Tool installiert werden: URL Rewrite. Es ist eine offizielle Erweiterung zu IIS und wurde bis zu Version 9 mit dem Server Manager zusammen installiert. Ab Version 10 muss URL Rewrite per Hand nachinstalliert werden. Dazu sollte die kostenlose EXE von Microsoft heruntergeladen werden. Diese ist hier zu finden:

Server Config anlegen

Nach der Installation muss auf das Root Verzeichnis der Webseite zugegriffen werden. Der IIS Manager sollte währenddessen nicht geöffnet sein. Dort wird die Datei web.config benötigt. Falls sie noch nicht existiert, muss sie neu angelegt werden.
Anschließend muss sie mit einem Texteditor geöffnet werden, um folgenden Text einzufügen:

<?xml version="1.0" encoding="UTF-8"?>
 <configuration>
  <system.webServer>
   <rewrite>
    <rules>
     <rule name="Redirect to HTTPS" enabled="false" stopProcessing="true">
      <match url="(.*)" />
      <conditions><add input="{HTTPS}" pattern="^OFF$" />
      </conditions>
      <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="SeeOther" />
     </rule>
    </rules>
   </rewrite>
  </system.webServer>
 </configuration>

Bist du bereit zu starten?

Oder hast du noch Fragen? Erstelle dir jetzt dein kostenloses Konto oder lass dich in einem persönlichen Gespräch beraten.

Anschließend kann das Dokument abgespeichert und der IIS geöffnet werden. Hier muss zur fraglichen Website navigiert und dort URL Rewrite geöffnet werden. Hier sollte die Regel erscheinen, die gerade angelegt wurde. Dies sieht (ungefähr) wie folgt aus:

Noch ist die Regel allerdings deaktiviert. Um sie zu aktivieren gibt es im linken Menü den Punkt: Enable Rule. Diesen anklicken.

Fertig! http Anfragen werden jetzt automatisch auf https weitergeleitet. Am besten sollte es sofort getestet werden, indem die fragliche Website in einem beliebigen Browser geöffnet wird.

Zusammenfassung

Mit wenig Aufwand wird dafür gesorgt, dass der gesamte Traffic der Webseite verschlüsselt ist.