Sprache auswählen

Nach einigen Tagen, die ich mit Einarbeitung in IIS 8.5 und SSL-Zertifikate zu gebracht habe, sind nun alle Domains auf meinem Server auf gültige HTTPS-Zertifikate umgestellt. Was sich am Anfang als kompliziert dargestellt hat, ließ sich letzen Endes doch recht angenehm realisieren. Da ich bisher keine Ahnung hatte wie SSL insbesondere im Kontext eines Internet Information Servers 8.x funktioniert begann ich damit, selbstsignierte Zertifikate einzusetzen. Das Ziel dabei war zunächst erstmal HTTPS ansich auf meiner hauptdomain www.silvercoin-gamedev.net funktionsfähig zu bekommen. Danach verwendete ich Zertifikate von Let's Encrpt um meine Seiten im Produktionsbetrieb abzusichern.

 

OpenSSL Self-Signed Zertifikate

Als Voraussetzung für das Installieren selbstsignierter Zertifikate benötigte ich folgendes:

 

  1. OpenSSL-Binary-Paket für Windows mit Kommandozeilentools zum Erstellen einer CA und danach damit erzeugter Zertifikate
  2. Eine Anleitung zum Import der OpenSSL Zertifikate in den Windowszertifikatsstore

 

Nachdem man über diese Anleitung eine CA sowie benötigte Zertifikate für die Domains erstellt hat, müssen diese noch nach *.pfx konvertiert werden, damit der Windows Zertifikatstore diese verarbeiten kann.

 

openssl pkcs12 -inkey bob_key.pem -in bob_cert.cert -export -out bob_pfx.pfx

 

Dabei ersetzt man den Namen "bob_key.pem" durch sein eigenes Domainzertifikat und die Ausgabedatei durch den Dateinamen des eignenen Domainzertifikats mit Dateiendung ".pfx".

 Um dieses Zertifkat nun in den Windowsstore zu importieren und damit im IIS 8 zugänglich zu machen, geht man wie folgt vor. Da man mit selbst-signierten Zertifikaten jedoch auch weiterhin den Nachteil hat, dass die eigene Webseite von aktuelle Browser nicht mehr dargestellt wird, musste also ein Zertifikat her welches eine ordentliche Chain-of-Trust (Link leider nur in Englisch) hatte, d.h. letzten Endes von einer vertrauenswürdigen CA signiert ist. Aus diesem Grund bin ich schon vor längerer Zeit auf das Projekt "LetsEncrypt" gestoßen.

 

Let's Encrypt-Zertifikate

Let's Encrypt ist ein super Ansatz für Privatpersonen, um Ihre Webseiten zukünftig abzusichern. Das ist insbesondere deshalb wichtig, da die gängigen Browser Firefox und Chrome in nahe Zukunft ungesichertes HTTP nicht mehr zulassen wollen. Let's Encrypt bietet für Linux einen Client zum beantragen von Zertifikaten bzw. zu deren Erneuerung. Dabei ist kein Papierkram notwendig. Der Nachweis, dass man eine Domain tatsächlich besitzt, läuft dabei über ein automatisiertes Challenge-System ab.

Zwischenzeitlich gibt es auch unter WIndows mit IIS die Möglichkeit direkt Zertifikate zu beantragen und diese gleich im IIS eintragen zu lassen. Die Basis dafür stellt ACMESharp zur Verfügung, eine .NET-basierte Bibliothek, die die Funktionen für die Let's Encrypt API zur Verfügung stellt. Darauf aufbauend existiert ein OpenSource-Tool namens Certify, welches die Beantragung und Verwaltung der Zertifikate für die eigenen Domains komfortabel ermöglicht.

Das Tool fragt eigenständig den IIS auf konfigurierte Websites und Domains ab und stellt die gefundenen Einträge in einer Combobox zur Auswahl. Sobald man dort einen Eintrag gewählt hat, hat man die Möglichkeit ein Zertifikat zu beantragen. Damit der automatische Ablauf auch funktionert muss der Zugriff auf einen bestimmten Http-Url auf dem Webspace der gewählten Domain verfügbar sein. damit prüft Lets Encrypt, ob man wirklich Besitzer der Domain ist. Dort legt der ACME client in Certify ein mit seinem Private Key signierte Nonce ab, die Let's Encrypt dazu dient, festzustellen, ob der Antragssteller des Zertifikats wirklich der Inhaber der Domain ist. Wichtig dabei zu beachten ist, dass der Aufruf durch Let's Encrypt auf die auf dem IIS liegende signierte Nonce immer per HTTP erfolgt und nicht per HTTPS.

Sobald diese Prüfung erfolgreich war, erhält der Certify-Client das fertige Zertifikat zurück und trägt es daraufhin gleich in den IIS ein. Das war es dann schon im Großen und Ganzen. Eventuell muss man noch im IIS-Manager die Bindungen auf HTTPS pro Webseite erstellen. 

 

Zertifikatserneuerung

Mit der Version 0.9.6 von Certify ist zwischenzeitlich auch die Erneuerung eines Zertifikats recht einfach. Man kann über die Im Certify-Tool enthaltenen Domäneneinträge einfach die Anfrage "Neues Zertifikat" ausführen, wodurch das existierende mit einem neuen Zertifkat ersetzt wird. Grundsätzlich ist die Gültigkeitsdauer eines Zertifikates bei "Lets Encrypt" 90 Tage. 

 

Fazit

Grunsätzlich ist "LetsEncrypt" eine super Sache und hilft auch Privatpersonen ihre Domänen SSL abzusichern. Mit dem Tool Certify ab Version 0.9.6 klappt das auch unter Windows Server wunderbar. Zwischenzeitlich gibt es das Tool Certify in Version 2.0 welches auch Zertifikate für mehrere Subdomains ausstellen kann. In der Version 2.0 ist das Tool für bis 5 Domains ohne Kauf herunterladbar. Für eine größere Domänenzahl kann die freie Version mittels eines Upgradekeys auf die Version mit unbegrenzter Domänenverwaltung umgestellt werden.

Eine kleine persönliche Anmerkung: Ich halte es für eine gute Idee, wenn man den "LetsEncrypt"-Service nutzt, dem Projekt von Zeit zu Zeit eine kleine Spende zukommenzulassen. Damit kann das Projekt hoffentlich noch lange fortgesetzt werden.