Lets encrypt mit nginx - HTTPS Zertifikate fuer alle

Die Lets Encrypt CA ist eine kostenlose Zertifizierungsstelle für vertrauenswürdige und kostenlose Zertifikate. Wunderbar also für einen eigenen nginx Server. Das Script was auf Python Basis aufbaut, aktualisiert automatisch alle 90 Tage bzw. früher die erstellten Zertifikate. Ebenso richtet es automatisch die vHosts bei Apache Webservern ein. So zumindest der Plan.

Das Projekt ist aktuell in der Public Beta Phase. Das bedeutet, dass noch nicht alles reibungslos funktioniert. Bestes Beispiel ist der Betrieb mit nginx. Dort funktioniert die automatische Einrichtung, sowie die Erneuerung der Zertifikate noch nicht. Das alles ist halb so schlimm und ist mit kleinen manuellen Eingriffen leicht und schnell erledigt. Die Installation geht schnell von statten:

apt-get install git
git clone https://github.com/letsencrypt/letsencrypt
cd letsencrypt

Nun zum eigentlichen Zertifikat. Im folgenden Beispiel wird ein Zertifikat mit 4096bit erstellt. Alles unter dieser Länge ist eine Gefahr. Wichtig ist, dass die korrekte Domain angegeben wird, in diesem Beispiel „vpslife.de“. Zertifikat erstellen:

./letsencrypt-auto certonly -rsa-key-size 4096 -d vpslife.de -d www.vpslife.de

Das Zertifikat wird automatisch unter dem Pfad /etc/letsencrypt/live/vpslife.de mit allen nötigen Dateien erstellt. Da die Beta Version noch nicht die automatische nginx Konfiguration unterstützt, holen wir das manuell nach. Dieser Schritt muss nur einmal pro vHost angewendet werden. Nginx vHost Konfiguration:

ssl_certificate /etc/letsencrypt/live/vpslife.de/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/vpslife.de/privkey.pem;

Das ist die Grundkonfiguration. Wie anfangs erwähnt muss das Zertifikat alle 90 Tage, besser vorher, manuell erneuert werden.
Das geschieht einfach mit dem genannten Befehl von oben. Um wirklich sicher zu gehen, sollte man seine Zertifikate durch ein Backup von /etc/letsencrypt/ regelmäßig sichern. Wobei durch ein neu erstelltes Zertifikat alles wieder schön ist 😉