Dies ist eine alte Version des Dokuments!


Let's Encrypt

Verwendetes System: Ubuntu 16.04

Let's Encrypt (englisch, „Lasst uns verschlüsseln“) ist eine Zertifizierungsstelle, die Ende 2015 in Betrieb gegangen ist und kostenlose X.509-Zertifikate für Transport Layer Security (TLS) anbietet. Dabei ersetzt ein automatisierter Prozess die bisher gängigen komplexen händischen Vorgänge bei der Erstellung, Validierung, Signierung, Einrichtung und Erneuerung von Zertifikaten für verschlüsselte Websites. Eine Registrierung auf der Webseite von Let's Encrypt gibt es nicht, und ist auch nicht notwendig.

Benutzt man Virtualmin ist dieser Schritt nicht notwendig. Let's Encrypt ist in Virtualmin bereits integriert.

apt install letsencrypt python-letsencrypt-apache

Voraussetzung damit der ganze Prozess funktioniert ist das der Server wo das Zertifikat installiert wird mind per Port 80 erreichbar ist, natürlich wird man auch gleich Port 443 freischalten. Auch muss jegliches vorheriges redirect deaktiviert werden. Let's Encrypt legt beim Zertifikatinstallationsprozess eine neue SSL-Defaultconfig für den Webserver an.

letsencrypt --apache -d example.com -d www.example.com

Man wird am Ende gefragt ob man auf HTTPS forcen möchte, dies sollte man aus sicherheitstechnischen gründen mit „JA“ beantworten. Hierbei wird auch die Ausnahme in der Datei gesetzt:

...
RewriteEngine on
RewriteCond %{SERVER_NAME} =meinserver.meine.domain
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,QSA,R=permanent]
...

Nach erfolgreichen Beendigung des Befehls ist der Webserver auch schon mit einem frischen Zertifikat ausgestattet. Die Erneurung erfolgt automatisch.

Das muss dann noch in einen Cron eintragen. Am besten ein Script unter /etc/cron.monthly erstellen.

letsencrypt
#!/bin/bash
letsencrypt --apache renew