HTTPS unter IIS 10

Dieser Artikel zeigt Euch, wie man die eigene Webseite unter Windows Server 2025 und Let’s Encrypt einfach und kostenlos mit HTTPS absichern kann.

Diskussion

Transport Layer Security (kurz TLS) ist ein Verschlüsselungsverfahren zum sicheren Übertragen von Daten über öffentliche Netzwerke. Bekannter ist es immer noch unter dem alten Namen SSL (Secure Sockets Layer). TLS ist die Grundlage für das Übertragungsprotokoll HTTPS, einer Erweiterung des HTTP-Protokolls, das die Übertragung von Daten verschlüsselt.

Wenn Du in Deinem Webbrowser eine Webseite aufrufst, dann wird sie Dir entweder per HTTPS oder aber HTTP übermittelt. Du erkennst das am Präfix der URL. Lautet dieser http://, dann ist es eine HTTP-Verbindung, lautet er https://, dann ist es eine HTTPS-Verbindung.

Da HTTP-Verbindungen in allen modernen Webbrowsern mittlerweile als potentiell unsicher gekennzeichnet werden, gibt es kaum noch öffentliche Webseiten ohne HTTPS. Aber warum ist das so?

  1. HTTPS verschlüsselt den Datenverkehr zwischen dem Webbrowser des Anwenders und Deiner Webseite. Niemand außer Euch beiden kann also sehen, welche Daten ihr untereinander austauscht. Und was fast noch wichtiger ist, niemand kann diese Daten ändern. Der letzte Aspekt wird leider viel zu oft unterschätzt. Das Argument, dass die eigene Website nur statischen Inhalt anzeigt und keine Benutzerdaten erfragt, geht hier ins Leere. Stell dir vor, jemand fängt alle Anfragen für Deine Webseite ab und lenkt sie stattdessen auf eine andere Webseite mit kriminellem Inhalten um. Das ist nicht schön, mit HTTPS kannst Du dies zuverlässig unterbinden.

  2. Die Datenschutzgrundverordnung (DSGVO) verpflichtet Webseiten-Betreiber, das eigene Angebot nach dem aktuellen Stand der Technik zu schützen (siehe Art. 32 DSGVO Sicherheit der Verarbeitung). HTTPS als ein Baustein in der Sicherheitsarchitektur kann ohne Zweifel als aktueller Stand der Technik betrachtet werden.

  3. Die Unterstützung von HTTP/2 setzt den Einsatz von TLS voraus.

  4. Die Google-Suche bewertet Webseiten mit HTTPS tendenziell höher als Webseiten ohne HTTPS. Das hat natürlich Auswirkung auf das Suchergebnis unter Google.

Wen das nicht überzeugt, dem sei die Webseite https://doesmysiteneedhttps.com ans Herz gelegt.

Die Nutzung von HTTPS für die eigene Webseite muss nichts kosten und kann mit sehr geringem Aufwand implementiert werden. Im weiteren Verlauf dieses Blog-Artikels zeige ich Euch, wie einfach das gehen kann.

Let’s Encrypt

Die Grundlage von HTTPS sind TLS-Zertifikate, die von einer vertrauenswürdigen Zertifizierungsstelle ausgegeben werden. Let’s Encrypt (zu deutsch: Lasst uns verschlüsseln) ist eine Zertifizierungsstelle, die kostenlose TLS-Zertifikate anbietet. Diese sind nur drei Monate gültig und werden durch Automation regelmäßig erneuert. Hauptsponsoren dieses Projekts sind unter anderem Amazon Web Services (AWS), Google Chrome, die Electronic Frontier Foundation (EFF), die Mozilla Foundation, Meta und Cisco Systems.

Grundlage für die automatische Bereitstellung und Aktualisierung von Zertifikaten durch Let’s Encrypt ist das sogenannte ACME-Protokoll (Automatic Certificate Management Environment Protocol), ein standardisiertes Internetprotokoll, das unter anderem prüft, ob der Anfragende auch wirklich die Kontrolle über eine Domäne hat.

Als Betreiber einer oder mehrerer Webseiten benötigt man lediglich einen ACME-kompatiblen Client und schon kann man bei Let’s Encrypt neue TLS-Zertifikate erfragen, und das kostenlos. Klingt gut, oder?

Los geht’s

Voraussetzung:

  • Ein lauffähiger Windows Server 2025 mit öffentlicher IP-Adresse.

Wir werden jetzt folgendes tun:

  1. Die Microsoft Internet Information Services (IIS) installieren und so konfigurieren, dass eine Webseite unter http://www.beispiel.de abrufbar ist.

  2. Den ACME-Client simple-acme installieren und IIS so konfigurieren, dass unsere Webseite auch unter https://www.beispiel.de abrufbar ist.

  3. Alle Anfragen auf http://www.beispiel.de automatisch umleiten auf https://www.beispiel.de.

IIS 10 installieren

Öffne die PowerShell als Administrator und überprüfe, ob IIS 10 bereits installiert ist:

Get-WindowsFeature -Name Webserver, Web-Mgmt-Tools

Sieht das Ergebnis wie folgt aus, musst Du nichts weiter machen:

Display Name                                            Name                       Install State
------------                                            ----                       -------------
[X] Web Server (IIS)                                    Webserver                     Installed
    [X] Management Tools                                Web-Mgmt-Tools                 Installed

Sollte da irgendwo ein Kreuzer fehlen, musst Du die Windows-Features installieren:

Install-WindowsFeature -Name Webserver, Web-Mgmt-Tools

IIS ist jetzt installiert, Du kannst Deine Webseiten mit Hilfe von Powershell oder dem IIS-Manager, einer grafischen Verwaltungsoberfläche für IIS, verwalten.

Teste anschließend, ob Du lokal die Standardwebseite von IIS 10 aufrufen kannst:

Invoke-WebRequest -Uri "http://localhost" -UseBasicParsing

Läuft IIS, dann bekommst Du eine Meldung wie diese hier:

StatusCode        : 200
StatusDescription : OK

...

Öffne nun den IIS-Manager und editiere dort das Site-Binding der Standardwebseite für http und trage unter Host name die URL Deiner Webseite ein, also www.beispiel.de.

IIS 10 Standard-Webseite

IIS 10 Standard-Webseite

Für einen externen Test öffne die URL http://www.beispiel.de in Deinen Webbrowser. Das Ergebnis sollte wie folgt aussehen:

IIS 10 Standard-Webseite

IIS 10 Standard-Webseite

ACME-Client installieren

Einer der besten Clients für Windows ist simple-acme, eine Open Source-Kommandozeilenanwendung, die sich prima im Kontext von Window Server 2025, 2022 oder 2019 einsetzen lässt.

  1. Lade Dir unter https://simple-acme.com/download die aktuellste Version herunter. In der Regel wird dies die Standardversion (Trimmed Release) für 64bit sein (z.B. simple-acme.v2.3.4.2084.win-x64.trimmed.zip).

    simple-acme - Trimmed 64-Bit Release

    simple-acme - Trimmed 64-Bit Release

  2. Entpacke das Zip-Archiv in einen Ordner Deiner Wahl, z.B. c:\simple-acme.

  3. Starte die Eingabeaufforderung als Administrator.

  4. Tippe c:\simple-acme\wacs ein und bestätige mit der Eingabetaste.

    simple-acme Startmenü

    simple-acme Startmenü

  5. Wähle die Option Create certificate (default settings).

    simple-acme - Zertifikat erzeugen

    simple-acme - Zertifikat erzeugen

  6. Wähle jetzt die Nummer der gewünschten Webseite aus. Existiert nur eine unter IIS, dann ist dies die Nummer 1.

    simple-acme - Webseite auswählen

    simple-acme - Webseite auswählen

  7. Wähle danach die Option Pick *all* bindings, also a.

    simple-acme - Bindung

    simple-acme - Bindung

  8. Es werden jetzt alle Bindungen der Webseite angezeigt. In unserem Beispiel ist dies nur eine Bindung. Bestätige mit der Eingabetaste.

Beim aller ersten Mal:

  • möchte simple-acme, dass Du Dir die Nutzungsbedingungen (Terms of Service) von Let’s Encrypt durchliest.

  • fragt Dich simple-acme nach Deiner E-Mail-Adresse zur Registrierung bei Let’s Encrypt. Bei Problemen (z.B. bei nicht durchgeführter Erneuerung eines Zertifikats) oder Missbrauch wirst Du automatisch von Let’s Encrypt per E-Mail benachrichtigt.

Sind alle Fragen beantwortet, kommuniziert simple-acme mit Let’s Encrypt und erfragt ein TLS-Zertifikat für die Domäne www.beispiel.de.

Das war’s. Deine Webseite hat jetzt eine zusätzliche HTTPS-Bindung bekommen, und diese wird automatisch alle 55 Tage erneuert. Dazu wird automatisch eine neue Aufgabe in der Windows-Aufgabenplanung erstellt. Ein Test in einem Webbrowser mit https://www.beispiel.de sollte erfolgreich funktionieren.

Umleitung von HTTP auf HTTPS:

Für die automatische Umleitung von HTTP auf HTTPS benötigen wir das URL Rewrite Module. Leider ist es standardmäßig nicht in IIS enthalten, Du musst es also separat installieren.

Danach gehe wie folgt vor:

  1. Markiere im IIS-Manager die Site für beispiel.de.

  2. Rechte Maustaste und dann Im Explorer öffnen auswählen. Der Windows-Explorer öffnet sich.

  3. Suche nach der Datei web.config. Existiert sie nicht, lege im aktuellen Ordner eine leere Textdatei mit dem Namen web.config an.

  4. Öffne die Datei web.config in einem Texteditor und trage die folgende Konfiguration dort ein.

    <?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" trackAllCaptures="false">
                <add input="{HTTPS}" pattern="off" ignoreCase="true" />
                <add input="{REQUEST_URI}" pattern="^/\.well-known/acme-challenge/.*" negate="true" />
              </conditions>
              <action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" redirectType="Permanent" />
            </rule>
          </rules>
        </rewrite>
      </system.webServer>
    </configuration>    
    
  5. Speichere die Datei und starte die Webseite im IIS-Manager neu.

Ein Test in einem Webbrowser mit http://www.beispiel.de sollte erfolgreich auf https://www.beispiel.de umleiten.

HTTP/2

Die Konfiguration von HTTPS unter IIS hat noch einen weiteren angenehmen Nebeneffekt. IIS 10 unterstützt in diesem Fall automatisch das HTTP/2-Protokoll. Alle modernen Webbrowser haben diesen Protokollstandard bereits implementiert und können daher ab sofort per HTTP/2 mit Deiner Webseite kommunizieren.

HTTPS absichern

TLS kann unterschiedlich sicher konfiguriert werden. Typische Probleme sind:

  1. Uralte TLS-Versionen 1.0 und 1.1. Diese sollten dringend deaktiviert werden.

  2. Zahlreiche veraltete kryptographische Verfahren, die als unsicher (weak) gelten.

Eine ausführliche Einführung in dieses Thema findest Du im Blog-Artikel TLS unter IIS 10 absichern.

HTTPS unter Apache, Linux etc.

Es stehen zahlreiche ACME-Clients zur Auswahl, insbesondere unter Linux. Eine Liste mit ACME-Clients findest Du hier auf den Seiten von Let’s Encrypt. Der von Let’s Encyrpt empfohlende Standard-Client ist Certbot. Leider ist dieser Client nicht unter Windows verfügbar.

Fazit

Das Konfigurieren von HTTPS für die eigene Webseite ist nicht besonders schwer und kostet nichts. So langsam bieten auch immer mehr Webhoster eine direkte Unterstützung von Let’s Encrypt an. Es lohnt sich hier eine Google-Suche mit den Stichworten webhoster und letsencrypt.

Artikelhistorie

  • 20.06.2019
    • Erstveröffentlichung
  • 29.10.2019
    • Anpassung für Windows 2019
    • Hinweise zu HTTP/2 eingefügt
    • Neue Bildschirmabbildungen und aktualisierte Beschreibung zu WACS
  • 03.02.2021
    • Einleitung überarbeitet
    • Neue Bildschirmabbildungen und aktualisierte Beschreibung zu WACS
  • 26.09.2025
    • Update für Windows Server 2025
    • Neues Kapitel zu IIS-Installation
    • Neue Bildschirmabbildungen und aktualisierte Beschreibung zu simple-acme (Nachfolger von WACS)
Das könnte dich auch interessieren:
  1. TLS unter IIS 10 absichern
  2. Remote-Administration mit IIS-Manager
  3. FTP/FTPS unter IIS 10
  4. OpenSSH absichern
  5. Wer hat an der Uhr gedreht?
Teile diesen Artikel