Allgemein

Mengo.de und Let’s Encrypt – TLS für alte Websites

Let’s Encrypt ist mittlerweile fast jedem bekannt und bietet einen einfachen Weg, kostenfreie und automatisiert TLS-Zertifikate für Webserver zu bekommen. Dieser Artikel beschreibt die grundlegenden Schritte, wie eine Domain gesichert wird.

Das Setup

Ausgangsbasis ist ein Debian-Server und eine alte Domain. Mengo.de wurde Anfang der 2000er durch Uwe Mense entwickelt und gehört noch zu den persönliche Homepages, wie sie Anfang der 2000er aufkamen. Dementsprechend rudimentär ist die Website, alter statischer HTML 4 Transitional-Code. Diese alte Homepage funktioniert als Andenken und soll noch viele Jahre ohne Zertifikatskosten laufen.

Installation von Let’s Encrypt

Entsprechend den modernen Anforderungen für eine Website soll die Website verschlüsselt werden.

Die Installation von Let’s Encrypt ist simpel. Zuerst wird der certbot gemäß der Anleitung von https://certbot.eff.org/ installiert. Ich wähle die Variante „certbot-auto“.

Die Installation habe ich in Linux unter /usr/sbin durchgeführt, die Dateiberechtigungen mit chmod auf 700 gesetzt, damit der certbot nur durch root ausgeführt werden kann.

Erstes Ausführen

Ich habe den Certbot initial so ausgeführt, dass die Serverkonfiguration von nginx nicht automatisch angepasst wird.

sudo /usr/sbin/certbot-auto --nginx certonly

Der Certbot läuft los, zeigt alle verfügbaren Domains an, die gewünschte Domäne wird ausgesucht.

Der Certbot fragt die DOmain ab.
Auswahl der zu erstellenden Zertifikate

Sind die zu erstellenden Zertifikate ausgewählt, erzeugt der Certbot die erforderlichen Zertifikate und legt sie unter

/etc/letsencrypt/live/mengo.de

ab. Das war’s die Zertifikate sind fertig!

Nun muss der Webserver noch konfiguriert werden. Unter NGINX bedarf das etwas Übung, allerdings gibt es eine gute Anleitung direkt auf der Homepage des Herstellers. Hier ein Ausschnitt aus der NGINX-Konfigurationsdatei für die Site:

        # SSL configuration
        #
        listen 443 ssl;
        listen [::]:443 ssl;
        ssl on;
...

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

        ssl_trusted_certificate  /etc/letsencrypt/live/mengo.de/fullchain.pem;
...

Einmal NGINX neustarten, und schon funktioniert die Verschlüsselung, und das ganze kostenfrei für 3 Monate.

Automatisiertes Aktualisieren

Da Let’s Encrypt-Zertifikate nur eine kurze Gültigkeitszeit besitzen und ich diese nicht manuell aktualisieren möchte, verwende ich die automatische Aktualisierung der Zertifikate über den certbot. Hierzu richte ich einen Cronjob ein.

# m h dom mon dow user  command
30 1 * * 6 root  /usr/sbin/certbot/certbot-auto renew && service nginx restart

Dieser Cronjob prüft und aktualisiert regelmäßig die Zertifikate und aktualisiert sie.

Fazit

Die Verschlüsselung über Let’s Encrypt ist wirklich einfach und innerhalb von wenigen Minuten zu implementieren. So ist es einfach, für alte Websites moderne Standards zu erreichen, für die sich der Einkauf eines Zertifikats vielleicht nicht lohnen würde.