Keine Ausreden – SSL für alle Webseiten


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!!!!

Du hast Fragen oder Anmerkungen? Kontakt: arndt@schoenb.de