cool IT Team-Blog

Let's Encrypt - gratis SSL/TLS mit IIS und Windows Server

Das Projekt Let's Encrypt ist eine 2015 ins Leben gerufene Zertifizierungsstelle, die sich die kostenlose, unkomplizierte Erstellung, Einrichtung und Erneuerung von Zertifikaten für verschlüsselte Websites als Ziel gesetzt hat. Durch das Wegfallen von Kosten und Aufwand der Konfiguration sollen mehr Betreiber zur Verwendung von HTTPS bewegt werden.

Let's Encrypt Logo

Lasst uns verschlüsseln. Aber warum eigentlich?

Egal ob kleiner persönlicher Blog oder riesiger Shop, Verschlüsselung bringt mehr Vertrauen und Sicherheit für Inhaber und Besucher. Sie können sich nicht nur sicher sein, dass die Inhalte der Seite tatsächlich von der Webseite stammen und nicht manipuliert wurden, es kann auch kein anderer im Netzwerk die Verbindung mitlesen. 

Hinter Let's Encrypt steckt eine Ansammlung von nahmhaften Sponsoren, darunter Mozilla (Firefox), Google Chrome, Cisco Systems und die Linux Foundation.
Alle haben ein gemeinsames Ziel: die standardmäßige Verschlüsselung des gesamten Web.
Die kostenlose Bereitstellung von Zertifikaten ist dabei nur ein Teil des Plans. Alle großen Webbrowser markieren unverschlüsseltes HTTP zukünftig als unsicher oder zeigen Warnungen vor dem Besuch unsicherer Seiten. Suchmaschinen wie Google reihen schon jetzt Seiten ohne SSL weiter unten in den Ergebnissen. Wenn Sie auf Besucher angeweisen sind, weil Sie zum Beispiel Werbung schalten oder einen Shop betrieben, empfiehlt es sich daher schnell auf HTTPS umzustellen.

Let's Encrypt und IIS

Ein wichtiger Baustein von Let's Encrypt ist ein Programm, welches neben dem Webserver ausgeführt wird und sich automatisch um die Erstellung und Erneuerung von Zertifikaten kümmert.
Will man ein gratis Zertifikat für einen Windows Server, hat man mit den offiziellen Tools des Projektes wenig Freude. Die offizielle Software "Certbot" ist nur für Linux verfügbar.
Als IIS Nutzer muss man auf eine Open-Source Implementierung wie z.b win-acme zurückgreifen.

Voraussetzungen

  • Windows Server 2008 R2 SP1 oder neuer (min .NET version 4.6.1)
  • IIS 8+ mit mindestens einer Webseite 
  • Administrator Rechte auf dem betreffenden Server
  • Grundlegendes Wissen im Umgang mit dem IIS Manager

Installieren des Clients

win-acme, ehemals lets-encrypt-winsimple ist auf der Open-Source Plattform Github gehostet.
Laden Sie dazu die letzte Release von win-acme von https://github.com/PKISharp/win-acme/releases und entpacken Sie das Archiv an eine beliebige Stelle. Danach verschieben wir letsencrypt.exe in einen Ordner, von dem wir das Programm in Zukunft immer ausführen können. (z.b "C:\Program Files\win-acme\letsencrypt.exe").

Wichtig: Vor dem nächsten Schritt sollten Sie sich mit dem User anmelden, mit dem später auch der Scheduled Task zur Erneuerung der Zertifkate ausgeführt werden soll. Dieser User muss Rechte zur Verwaltung von IIS und Anlegen von scheduled Tasks haben! (z.b lokaler Administrator)

Binding in IIS

Für die betreffende Webseite muss bei den Bindings in IIS der Hostname eingetragen sein, von dort liest das Tool später den Hostnamen des Zertifikats.

IIS Bindings Fenster

Ausführung des Tools

Sind wir mit dem richtigen User angemeldet, starten wir letsencrypt.exe einfach mit einem doppelclick.
Es startet im interactive mode mit einer Eingabeaufforderung.

win-acme Fenster
  • Wählen Sie N um ein neues Zertikat anzulegen
  • Für eine Seite mit einer Domain tippen Sie 1
  • Es folgt eine Liste aller Hostnamen mit Bindings in IIS, wählen Sie die gewünschte Seite über die davorstehende Nummer aus.
  • Das Tool fragt Sie im Laufe des Vorgangs nach einer E-Mail-Adresse, diese wird zur Registrierung bei Let's Encrypt verwendet
  • Das Zertifikat wird dann automatisch angefordert, in den Windows certificate store importiert und ein SSL Binding in IIS anegelegt.
  • Es wird ein Task angelegt, der alle 60 Tage alle Zertifikate erneuert.
  • Glückwunsch, Sie haben jetzt ein SSL Zertifikat und eine über HTTPS erreichbare Seite!
cool-it.at mit HTTPS

Weiterleitung von HTTP zu HTTPS

Nach dem win-acme ein SSL Binding für Ihre Domain eingerichtet hat, ist diese unter HTTPS und HTTP erreichbar.
Der letzte wichtige Schritt ist alle unverschlüsselten Verbindungsanfragen auf die verschlüsselte Seite weiterzuleiten.
Dazu legen Sie im IIS Manager bei der gewünschten Seite eine neue Regel unter URL Rewrite wie folgt an:
IIS Weiterleitungs Regel
Wichtig ist die Ausnahme von dem Pfad "/.well-known", dieser muss unverschlüsselt erreichbar sein, weil darin vom dem Tool Dateien abgelegt werden, die bei der Erstellung eines Zertikats von Let's Encrypt abgerufen werden. (Mehr dazu: https://letsencrypt.org/how-it-works/)

Resumeé

Trotz ein paar Hürden für Windows Server User ist es dank Let's Encrypt und win-acme relativ simpel, eine Webseite oder Applikation auf HTTPS umzustellen. Ein gutes Beispiel ist unsere Seite, auf der Sie sich gerade befinden. Es funktioniert übrigens genauso einfach mit mehreren Seiten auf einem Server, sowie mit Sharepoint Instanzen.
 
Ist doch cool, oder?

Verfasst: 05.02.2018 08:26:16 von Tobias Piskula
Tags: certbot, cool it, encrypt, gratis https, https, iis, lets, lets encrypt, microsoft, server, ssl, windows, zertifikat

1


Kommentare
Für diesen Blogbeitrag liegen zurzeit keine Kommentare vor.
Einen Kommentar schreiben



 Security code