Durch das Projekt Lets Encrypt ist es nun möglich für alle Web-Seiten einfach und kostenfrei ein SSL Zertifikat zu erstellen. Es gibt also keine Ausreden mehr für ungesichert Verbindungen. Neben dem Sicherheitsaspektwerden Nutzer nicht mehr durch Warnungen im Browser irritiert. Des Weiteren ist zwar im offiziellen Standard von HTTP/2 zwar auch Verbindungen ohne SSL (https://) vorgesehen, aber die Browser-Hersteller bieten HTTP/2 nicht ohne Verschlüsselung an.
Also ran an die Zertifikate! Die folgende Beschreibung beschreibt wie ein Apache auf einer Ubuntu Installation abgesichert wird und wie die erstellten Zertifikate automatisch aktualisiert werden. Parmeter und andere Informationen auf die ich hier nicht eingehe, können unter anderem in der Dokumentation nachgelesen werden.
Installation
Die Installation der Let’s-Encrypt Skripte erfolgt entweder über apt-get (in Ubuntu 14.04. sind diese noch nicht in den Repositories) oder durch Auschecken der Skripte aus Git.
git clone https://github.com/letsencrypt/letsencrypt ./letsencrypt-auto --help
Eine erste Hilfe wird mit folgenden Befehlen angezeigt.
cd letsencrypt ./letsencrypt-auto --help
Aktualisierung der Installation
Die Installation wird automatisch mit dem Befehl letsencrypt-auto aktualisiert, der im Folgenden noch öfter zum Einsatz kommt.
Erzeugen eines Zertifikats
Das Erzeugen der Zertifikate erfolgt in dem Installationsverzeichnis. Im ersten Schritt wird festgelegt für welche Domains das Zertifikat gelten soll (z.B. mit und ohne www) und wo sich das Homeverzeichnis für die Domain befindet. In dieses Verzeichnis wird im Laufe der Erzeugung eine Datei abgelegt über die geprüft wird, ob der Antragsteller Zugriff auf den Server hat.
./letsencrypt-auto certonly -d www.mein-name.de -d mein-name.de -w /var/www/mein-name/
Die obige Anweisung erzeugt für www.mein-name.de und mein-name.de ein Zertifikat. Das Basisverzeichnis der Web-Seiten liegt unter /var/www/mein-name/. Auf die Frage
How would you like to authenticate with the Let's Encypt CA?
wähle ich
2 place files in webroot directory.
Im Anschluss werden die Dateien für das Zertifikat erzeugt und verfiziert. Sie finden sic dann unter
/etc/letsencrypt/live/www.mein-name.de
Konfiguration von Apache
Für die installation benötige ich die Version des installierten Apache.
apache2ctl -v
Bis Apache 2.4.7 sieht die Konfiguration wie folgt aus
... SSLEngine on SSLCertificateFile /etc/letsencrypt/live/thomas-leister.de/cert.pem SSLCertificateChainFile /etc/letsencrypt/live/thomas-leister.de/chain.pem SSLCertificateKeyFile /etc/letsencrypt/live/thomas-leister.de/privkey.pem ...
Ab Apache 2.4.8 (Ubuntu 15.04) sollte auf das SSLCertificateChainFile“ verzichtet und stattdessen nur SSLCertificateFile mit der Datei fullchain.pem statt cert.pem genutzt werden:
... SSLEngine on SSLCertificateFile /etc/letsencrypt/live/thomas-leister.de/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/thomas-leister.de/privkey.pem ...
Erneuerung der Zertifikate
Let‘s Encrypt stellt Befehle für die Erneuerung von Zertifikaten bereit (link). Mit dem Befehl
./letsencrypt-auto renew
werden alle aktuellen Zertifikate geprüft. Läuft dieser Befehl problemlos, kann er in crontab übernommen werden und legt somit automatisch die Zertifikate bei Bedarf neu an. Es werden Zertifikate erneuert, die keine 30 Tage Gültigkeit mehr besitzen.
Das war es …
Einfach und sicher … Vielen Dank an Let‘s Encrypt!!!!