Let’s Encrypt: Nie wieder Probleme mit selbst signierten Zertifikaten

Let’s Encrypt hat seit Mitte April 2016 die offene Beta verlassen. Es spricht also nicht mehr viel für selbst-signierte Zertifikate.

Paketquelle aktualisieren

Zunächst muss die Paket-Quelle geupdated werden. Dazu /etc/apt/sources.list öffnen und folgende Zeile einfügen:

deb http://ftp.debian.org/debian jessie-backports main

Beachte, dass dies für Debian 8 (aka „Jessie“) ist. Wenn du Raspbian einsetzt musst du dir darüber keine Gedanken machen.

Danach apt-get mit sudo apt-get update updaten.

Weitere Infos zu Backports: https://backports.debian.org/Instructions/

Certbot installieren

Der offizielle Let’s Encrypt Client heißt seit Mai 2016 Certbot. Installiere diesen mit:

sudo apt-get install python-certbot-apache -t jessie-backports

Während der Installation müssen ein paar Fragen mit Y bestätigt werden.

Jetzt kannst du ein Zertifikat für deinen Apache-Server erstellen:

/opt/letsencrypt/letsencrypt-auto --apache certonly

Das könnte je nach System ein paar Minuten dauern. Sollte es nicht funktionieren musst du letsencrypt-auto mit certbot-auto ersetzen. Mit --help kannst du dir direkt die Hilfe anzeigen lassen.

Dokumentation von Certbot

SSL aktivieren

Wurde das Zertifikat erfolgreich installiert, kannst du SSL für all deine Sites aktivieren.

Für die Standard-Seite musst du in etc/apache2/sites-available/default-ssl.conf folgendes einfügen:

SSLEngine On SSLCertificateKeyFile /etc/letsencrypt/live/[DEINE_DOMAIN]/privkey.pem SSLCertificateFile /etc/letsencrypt/live/[DEINE_DOMAIN]/fullchain.pem

Danach den Server neu starten /etc/init.d/apache2 restart und deine Seite sollte mit https://[DEINE_DOMAIN] ohne irgendwelche Zertifikatsfehler angezeigt werden.

Zertifikat erneuern

Das Zertifikat läuft nach 90 Tagen ab und muss dann erneuert werden. Mit /letsencrypt-auto renew kannst du das Zertifikat erneuern.

Um das ganze automatisiert ablaufen zu lassen kannst du Cron benutzen – ein Tool mit dem man unter Linux Prozesse in einem zeitlichen Intervall ablaufen lassen kann.

Dazu unter /etc/cron.monthly eine neue Datei anlegen (z.b. letsencrypt) und folgendes einfügen:

/opt/letsencrypt/letsencrypt-auto renew

Das führt dann alle 30 Tage diese Funktion aus – es werden nur Zertifikate erneuert, die kurz vor dem Ablauf stehen.