Kategorien
Tutorials

HTTPS für IIS konfigurieren

Heutzutage wird HTTPS immer wichtiger und ist quasi zum Standard geworden. In dieser Anleitung zeige ich daher, wie sich HTTPS für den IIS (Internet Information Services) konfigurieren lässt. Ich gehe dabei auf die Konfiguration mit einem selbstsignierten Zertifikat und die Konfiguration mit einem SAN-Domänenzertifikat ein.

Getestet wurde dieser Artikel unter Windows Server 2019 und Windows Server 2022 mit IIS 10.0.17763.1 und 10.2.20348.1.

Zertifikat erstellen

In diesem Artikel zeige ich zwei verschieden Möglichkeiten ein Zertifikat zu erstellen. Du kannst direkt zu dem für dich passenden Abschnitt springen:

Selbstsigniertes Zertifikat erstellen

In diesem Abschnitt zeige ich, wie sich ein selbstsigniertes Zertifikat (nicht empfohlen) erstellen lässt. Wenn du ein SAN-Domänenzertifikat erstellen möchtest, springe direkt zum nächsten Abschnitt.

Im IIS-Manager muss auf der linken Seite auf den Server und anschließend doppelt auf "Serverzertifikate" geklickt werden:

IIS Serverzertifikate
Über den IIS-Manager kann die Zertifikatverwaltung aufgerufen werden.

Auf der rechten Seite befindet sich nun der entsprechende Punkt "Selbstsigniertes Zertifikat erstellen...":

IIS selbstsigniertes Zertifikat erstellen
Über den IIS-Manager kann ein selbstsigniertes Zertifikat erstellt werden.

Ein Klick darauf öffnet einen Dialog. Es ist zuerst ein Anzeigename und der Zertifikatspeicher anzugeben. Als Anzeigename verwende ich den Namen, unter dem die Website später aufgerufen werden soll. In meinem Beispiel etwa "WEBSRV01". Als Zertifikatspeicher wähle ich "Webhosting":

IIS selbstsigniertes Zertifikat erstellen
Im Dialog für selbstsignierte Zertifikate ist nicht viel anzugeben.

Das Zertifikat ist jetzt erstellt und wird im IIS-Manager entsprechend angezeigt:

IIS Serverzertifikate
Das selbstsignierte Zertifikat taucht schließlich bei den Serverzertifikaten auf.

Im nächsten Schritt ist die Bindung zu konfigurieren.

SAN-Domänenzertifikat über CA erstellen

Dieser Weg setzt voraus, dass es eine Active Directory mit funktionsfähiger CA gibt. Wenn dies der Fall ist, ist auf dem Server die MMC und das Snap-In für Computerzertifikate zu öffnen. Unter "Eigene Zertifikate" kann nun eine benutzerdefinierte Anforderung erstellt werden:

MMC SAN-Domänenzertifikat erstellen
Über die MMC kann ein CSR für ein SAN-Zertifikat erstellt werden.
Je nach Konfiguration der CA gibt es auch noch einfachere Wege das Zertifikat zu erstellen. Ich wähle hier jedoch diesen Weg, da er in den meisten Konfigurationen funktionieren sollte.

Nach einem Klick auf "Weiter" ist "Den Vorgang ohne Registrierungsrichtlinie fortsetzen" auszuwählen und auf "Weiter" zu klicken:

MMC SAN-Domänenzertifikat erstellen
Es ist eine benutzerdefinierte Anforderung zu erstellen.

Die Einstellungen bezüglich der Vorlage und des Anforderungsformats im nächsten Schritt belasse ich im Standard und klicke auf "Weiter". Im nächsten Fenster muss der Reiter "Benutzerdefinierte Anforderung" aufgeklappt und auf "Eigenschaften" geklickt werden:

MMC SAN-Domänenzertifikat erstellen
Mit der benutzerdefinierten Anforderung kann ein geeignetes SAN-Zertifikat erstellt werden.

Es öffnet sich ein weiterer Dialog, in dem ein beliebiger Anzeigename angegeben werden muss. Ich wähle den Namen des Servers "websrv01":

MMC SAN-Domänenzertifikat erstellen
Dem Zertifikat muss ein Anzeigename für die spätere Identifikation vergeben werden.

Im Reiter "Antragsteller" können schließlich der CN und die alternativen DNS-Namen oder IP-Adressen angegeben werden, für die das Zertifikat gültig sein soll:

MMC SAN-Domänenzertifikat erstellen
Ein SAN-CSR lässt sich mit wenig Aufwand über die MMC erstellen.

In den übrigen Reitern können noch Erweiterungen ausgewählt oder Einstellungen zum privaten Schlüssel gemacht werden. Ich wähle hier noch aus, dass der private Schlüssel 2048 Bit lang sein soll. Bei Bedarf kann auch noch die Option "Privaten Schlüssel exportierbar machen" aktiviert werden.

MMC SAN-Domänenzertifikat erstellen
Die Schlüssellänge erhöhe ich auf 2048 Bit, da 2014 Bit heutzutage nicht mehr zeitgemäß ist.

Nach einem Klick auf "OK" und "Weiter" ist noch der Dateiname anzugeben. Das Dateiformat belasse ich auf "Base 64":

MMC SAN-Domänenzertifikat erstellen
Den CSR möchte ich als Base 64 erhalten, damit ich diesen später mit dem Texteditor ansehen kann.

Nach einem Klick auf "Fertig stellen" wird der CSR schließlich erstellt. Die Datei lässt sich mit einem Texteditor öffnen und hat das folgende Format:

-----BEGIN NEW CERTIFICATE REQUEST-----
XYZ
-----END NEW CERTIFICATE REQUEST-----

Der gesamte Inhalt der Datei ist schließlich zu kopieren und in den Active Directory Zertifikatsdiensten anzugeben. In den Active Directory Zertifikatsdiensten ist dazu eine erweiterte Zertifikatanforderung einzusenden und als Zertifikatsvorlage "Webserver" auszuwählen:

Windows CA Zertifikat ausstellen
Mit dem CSR kann das Zertifikat bei den Active Directory Zertifikatdiensten erstellt werden.

Das Zertifikat (*.cer) kann in DER-codiert heruntergeladen und auf den Server übertragen werden.

Zurück in der MMC kann das Zertifikat jetzt importiert werden:

MMC Zertifikat importieren
Über die MMC kann die *.cer Zertifikatdatei importiert werden.

Als Speicherort beim Importvorgang muss natürlich "Lokaler Computer" und nicht "Aktueller Benutzer" ausgewählt sein. Die Einstellungen können im Standard belassen werden.

Das Zertifikat ist nun im Zertifikatspeicher von Windows hinterlegt und kann später im IIS ausgewählt werden:

MMC Computerzertifikate
Das SAN-Zertifikat ist jetzt erfolgreich in Windows installiert.

Bindungen im IIS konfigurieren

Im IIS können jetzt die Bindungen konfiguriert werden. Die Bindungen geben an, auf welche Ports und unter welchen DNS-Namen oder IP-Adressen der IIS erreichbar sein soll. Es ist dafür mit der rechten Maustaste auf die entsprechende Site und auf "Bindungen bearbeiten..." zu klicken:

IIS Bindungen bearbeiten
Die Bindungen können über das Kontextmenü der entsprechenden Site erreicht werden.

Eine Zeile für HTTP Port 80 sollte bereits vorhanden sein. Ich erstelle eine zweite Bindung per Klick auf "Hinzufügen...":

IIS HTTPS Bindung erstellen
Die Bindung für HTTPS-Anfragen kann über die Schaltfläche "Hinzufügen..." erstellt werden.

Als Typ ist "https" anzugeben. Den Port belasse ich im Standard. Unten ist schließlich noch das SSL-Zertifikat auszuwählen, was wir im Schritt zuvor erstellt. IP-Adresse und Hostname lasse ich frei, da der IIS auf alle Anfragen zu diesem Port reagieren soll.

An dieser Stelle lässt sich der IIS bereits per HTTP und HTTPS aufrufen. Wenn ein selbstsigniertes Zertifikat verwendet wird, ist hier natürlich mit einem Zertifikatsfehler zu rechnen. In meinem Fall erscheint eine 403-Fehlermeldung, die aber ignoriert werden kann. Die liegt in meinem Beispiel lediglich daran, dass meine Site keinen Inhalt enthält.

IIS HTTPS Bindung 403
Der IIS reagiert jetzt auf HTTPS-Anfragen aus dem Netzwerk.

An dieser Stelle lässt sich die Site bereits über HTTPS aufrufen. Eine Weiterleitung von HTTP auf HTTPS findet jedoch noch nicht statt. Das schauen wir uns im nächsten Abschnitt an.

Automatische Weiterleitung von HTTP auf HTTPS

Für die automatische Weiterleitung von HTTP auf HTTPS ist ein Zusatzmodul für den IIS erforderlich, welches installiert und konfiguriert werden muss.

Installation von URL Rewrite

Wenn der IIS später HTTP-Anfragen automatisch auf HTTPS umleiten soll, muss das Zusatzpaket URL Rewrite installiert werden.

Ich verwende diesen Downloadlink, weil dieser auch ohne den Microsoft Web Platform Installer funktioniert, dessen Support dieses Jahr endet:

Bei der Installation des Moduls ist nichts zu beachten. Der Installer kann einfach durchgeklickt werden.

Konfiguration der URL Rewrite Regel

Um eine Regel für die Weiterleitung zu konfigurieren, ist in der linken Hälfte auf die entsprechende Site (nicht auf den Eintrag für den Server) und anschließend doppelt auf "URL Rewrite" zu klicken:

IIS URL Rewrite
Die automatische Weiterleitung auf HTTPS wird über das Modul "URL Rewrite" erstellt.

Auf der rechten Seite befindet sich jetzt die Option "Regel(n) hinzufügen...":

IIS URL Rewrite Regel hinzufügen
Eine neue Regel kann über die Schaltfläche "Regel(n) hinzufügen..." erstellt werden.

Erstellen wir jetzt die erste Regel, die die Weiterleitung von HTTP auf HTTPS vornimmt. Nach einem Klick auf "Regel(n) hinzufügen...", ist eine leere Regel zu erstellen:

IIS URL Rewrite Weiterleitung auf HTTPS
Mit einer leeren Regel kann die Weiterleitung auf HTTPS konfiguriert werden.

Zunächst vergebe ich einen aussagekräftigen Namen wie "HTTP zu HTTPS" und gebe das Muster (.*) an. (.*) trifft hierbei auf alle möglichen Anfragen zu.

IIS URL Rewrite Weiterleitung auf HTTPS
Im ersten Schritt ist ein Name und ein Muster anzugeben.

Weiter unten muss noch eine Bedingung und eine Aktion angegeben werden. Die Bedingung soll aussagen "Wenn HTTPS deaktiviert ist...". Die Aktion sagt aus, dass die angefragte Adresse auf HTTPS umgeleitet wird.

Bedingung

Eingabe: {HTTPS}
Muster: ^OFF$

Aktion

Aktionstyp: Umleiten
URL umleiten: https://{HTTP_HOST}{REQUEST_URI}

Wenn für HTTPS ein anderer Port als 443 verwendet wird, ist bei "URL umleiten" https://{SERVER_NAME}:PORT{REQUEST_URI}, also z.B. https://{SERVER_NAME}:8443{REQUEST_URI} zu hinterlegen.
IIS URL Rewrite Weiterleitung auf HTTPS
Mit der Bedingung und der Aktion definieren wir, wann auf HTTPS weitergeleitet werden soll.

Nach einem Klick auf "Übernehmen" oben rechts sollte die automatische Weiterleitung von HTTP und HTTPS bereits funktionieren. Wenn nicht, versuche einmal den Test in einem privaten Browserfenster zu wiederholen.

Seit mehreren Jahren begeistere ich mich privat und beruflich für die IT. Das habe ich dann auch zum Anlass genommen, diesen Blog ins Leben zu rufen, um dort praxisnahe Tutorials über verschiedene IT-Themen zu schreiben und meine selbst geschriebene Software zu veröffentlichen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.