Let’s Encrypt mit IIS unter Windows 2012 R2


Let's Encrypt
Let’s Encrypt

Bis dato war es recht aufwändig, ein offizielles Zertifikat zur Verschlüsselung einer Homepage zu installieren. Neben den hohen Kosten war zusätzlich ein relativ aufwändiger Beantragungsprozess zu durchlaufen. Mit Let’s Encrypt wurde dieser Aufwand auf ein Minimum reduziert und ist vor Allem auch für Windows Server dank letsencrypt-win-simple zum Kinderspiel geworden.

Seit 2016 gibt es eine sehr einfache Lösung, mit der im Prinzip jeder ein kostenloses Zertifikat für seine Homepage beziehen kann. Damit ist sichergestellt, dass die Informationen, die zwischen dem Browser und der Homepage ausgetauscht werden, verschlüsselt werden. Dies ist insbesondere dann wichtig, wenn beispielsweise Passwörter zur Anmeldung übermittelt werden müssen. Aber auch die Erfassung von personenbezogenen Daten, wie sie häufig über Formulare ermöglicht werden, sollte über eine gesicherte Verbindung laufen.

Update: mit Version 1.9.7.10258 hat sich der Ablauf etwas geändert. Hier dargestellt ist diese Version.

Nachfolgend die Beschreibung zur Einrichtung:

  1. Die Beschreibung geht davon aus, dass die Einrichtung direkt auf dem Server ausgeführt wird, auf dem der IIS läuft.
  2. Auf dem IIS muss das Binding zum URL der Homepage eingetragen sein. Hierzu den Internetinformationsdienste (IIS)-Manager starten und bei den Site-Bindungen für die Homepage http über Port 80 ohne spezifische IP-Adresse hinterlegen:

    Site-Bindung bearbeiten
    Site-Bindung bearbeiten
  3. Am besten über den folgenden URL das neueste Release von letsencrypt.win-simple holen: https://github.com/Lone-Coder/letsencrypt-win-simple/releases
  4. ZIP-Datei entpacken und die Datei letsencrypt.exe ausführen (die Meldung der Benutzerkontensteuerung entsprechend bestätigen, damit die Anwendung ausgeführt werden kann).
  5. Sollte die http Bindung zur Homepage nicht vorhanden sein, wird dies mit folgender Meldung quittiert (dann muss etwas in Schritt 2 schief gegangen sein):
    Scanning IIS Site Bindings for Hosts
    IIS Version not found in windows registry. Skipping scan.
    No targets found.
  6. Um einige Tage vor Ablauf des Zertifikats Erinnerungsmails zu erhalten, sollte man zunächst eine gültige e-Mail Adresse eingeben:
     [INFO] Let's Encrypt Windows Simple (LEWS)
     [INFO] Software version 1.9.7.10258 (RELEASE)
     [INFO] IIS version 8.5
     [INFO] ACME Server https://acme-v01.api.letsencrypt.org/
     [INFO] Please report issues at https://github.com/Lone-Coder/letsencrypt-win-simple
    
     Enter an email address (not public, used for renewal fail notices): xxx@xyz.de
  7. Nun sollten noch die Bedingungen akzeptiert werden, die man als PDF lesen kann:
     Do you agree to https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf? 
     (y/n): - yes
  8. Nun folgt das Auswahlmenü (dort wähle ich n für ein neues Zertifikat):
     N: Create new certificate
     L: List scheduled renewals
     R: Renew scheduled
     S: Renew specific
     A: Renew *all*
     C: Cancel scheduled renewal
     X: Cancel *all* scheduled renewals
     Q: Quit
    
    P lease choose from the menu: n
  9. Nun folgt die Auswahl der Zertifikatart (ich wähle 1)
     1: Single binding of an IIS site
     2: SAN certificate for all bindings of an IIS site
     3: SAN certificate for all bindings of multiple IIS sites
     4: Manually input host names
     C: Cancel
    
    Which kind of certificate would you like to create?: 1
  10. Nun wird der zuvor eingetragene Domainname angezeigt der hier unter 1 aufgeführt ist und durch Eingabe von 1 ausgewählt wird:
     1: www.xyz.de (SiteId 1) [@%SystemDrive%\inetpub\wwwroot]
     C: Cancel
    
     Choose site: 1
  11. Zur Validierung des Zertifikats wählt man nun eine Methode (ich nehme die empfohlene mit der NUmmer 4)
    1: [tls-sni-01] Use IIS as endpoint
     2: [dns-01] Azure DNS
     3: [dns-01] Run external program/script to create and update records
     4: [http-01] Create temporary application in IIS (recommended)
     5: [http-01] Save file on local (network) path
     6: [http-01] Self-host verification files (port 80 will be unavailable during validation)
    
     How would you like to validate this certificate?: 4
  12. Ab jetzt läuft die Installation automatisch. Am Ende dieses Prozessschrittes wird ein täglicher Task eingerichtet, der mit einem spezifischen User-Konto verknüpft werden kann. Die Anfrage zur Angabe eines User-Kontos bestätige ich mit yes:
     [INFO] Authorizing www.xyz.de using http-01 validation (IIS)
     [INFO] Answer should now be browsable at http://www.xyz.de/.well-known/acme-challenge/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
     [INFO] Authorization result: valid
     [INFO] Requesting certificate www.xyz.de 2017.11.22 5:32:59
     [INFO] Saving certificate to C:\ProgramData\letsencrypt-win-simple\httpsacme-v01.api.letsencrypt.org
     [INFO] Installing certificate in the certificate store
     [INFO] Adding certificate www.xyz.de 2017.11.22 5:32:59 to store WebHosting
     [INFO] Installing SSL certificate in server software
     [INFO] Adding new https binding www.xyz.de:443
     [INFO] Committing binding changes to IIS
     [INFO] IIS will serve the new certificates after the Application Pool IdleTimeout has been reached.
     [INFO] Creating task letsencrypt-win-simple httpsacme-v01.api.letsencrypt.org with Windows Task scheduler at 9am every day.
    
     Do you want to specify the user the task will run as? (y/n): - yes
  13. Nun erfolgt die Eingabe von username und password. Nach Bestätigung wird angezeigt, wann der Task als nächstes läuft und das Auswahlmenü wird wieder angezeigt. Dieses verlasse ich mit q:
     Enter the username (Domain\username): domain\username
    
     Enter the user's password: ********************
    
     [INFO] Adding renewal for [IIS] www.xyz.de (SiteId 1) [ @ %SystemDrive%\inetpub\wwwroot]
     [INFO] Next renewal scheduled at 2018.1.21 4:35:10
    
     N: Create new certificate
     L: List scheduled renewals
     R: Renew scheduled
     S: Renew specific
     A: Renew *all*
     C: Cancel scheduled renewal
     X: Cancel *all* scheduled renewals
     Q: Quit
    
     Please choose from the menu: q
  14. Das war es schon. Man kann im Internetinformationsdienste (IIS)-Manager nun prüfen, ob die Site-Bindung auf https über Port 443 jetzt vorhanden ist – das wurde durch letsencrypt-win-simple automatisch bewerkstelligt.
Advertisements

2 Kommentare zu „Let’s Encrypt mit IIS unter Windows 2012 R2

Was meinst Du dazu?

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden /  Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden /  Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden /  Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden /  Ändern )

w

Verbinde mit %s