Zurück zur Übersicht
Selfhosting Artikel 06 von 08

HTTPS mit Let's Encrypt

Kostenlose HTTPS-Zertifikate für alle selbst gehosteten Dienste: Certbot macht die Einrichtung zur Routineaufgabe und erneuert Zertifikate automatisch.

Hier richtest du HTTPS mit Let’s Encrypt ein, damit eigene Dienste verschlüsselt erreichbar sind. Ohne HTTPS überträgt dein Browser alle Daten unverschlüsselt. Passworteingaben, Inhalte, Sitzungscookies, alles im Klartext. Das war früher akzeptabel wenn eine Domain teuer und die Einrichtung aufwändig war. Heute gibt es keinen Grund mehr darauf zu verzichten.

Let's Encrypt ist eine gemeinnützige Zertifizierungsstelle die seit 2016 kostenlose SSL-Zertifikate ausstellt. Certbot ist das offizielle Werkzeug dafür. Die Einrichtung dauert wenige Minuten, die Erneuerung läuft automatisch.

Voraussetzungen

Damit Let's Encrypt funktioniert braucht deine Domain einen DNS-Eintrag der auf die Server-IP zeigt, und Port 80 muss von außen erreichbar sein. Let's Encrypt prüft beim Ausstellen eines Zertifikats ob du die Domain wirklich kontrollierst, indem es eine Datei auf deinem Server abruft.

Nur für öffentlich erreichbare Server

Let's Encrypt funktioniert nur für Server mit einer echten Domain die über das Internet erreichbar ist. Für lokale Dienste im Heimnetz ohne feste Domain ist ein selbstsigniertes Zertifikat die Alternative, das allerdings Browser-Warnungen erzeugt.

Certbot installieren

sudo apt update sudo apt install certbot python3-certbot-nginx

Das Nginx-Plugin für Certbot ist wichtig: es liest die bestehende Nginx-Konfiguration, holt das Zertifikat und passt die Konfiguration automatisch für HTTPS an.

Zertifikat ausstellen

Für eine Domain mit bestehender Nginx-Konfiguration reicht ein einziger Befehl:

sudo certbot --nginx -d n8n.meinserver.de

Certbot fragt nach einer E-Mail-Adresse für Ablaufbenachrichtigungen und ob du der Weiterleitungsregel von HTTP zu HTTPS zustimmst. Beides mit Ja beantworten. Danach ist die Domain über HTTPS erreichbar.

Für mehrere Domains auf einmal:

sudo certbot --nginx -d n8n.meinserver.de -d nextcloud.meinserver.de

Was Certbot in der Nginx-Konfiguration ändert

Certbot ergänzt die bestehende Konfigurationsdatei automatisch. Aus dem einfachen HTTP-Block wird eine vollständige HTTPS-Konfiguration mit Zertifikatspfaden und einer Weiterleitung von Port 80 auf 443:

server { listen 443 ssl; server_name n8n.meinserver.de; ssl_certificate /etc/letsencrypt/live/n8n.meinserver.de/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/n8n.meinserver.de/privkey.pem; location / { proxy_pass http://localhost:5678; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; } } server { listen 80; server_name n8n.meinserver.de; return 301 https://$host$request_uri; }

Automatische Erneuerung

Let's Encrypt Zertifikate laufen nach 90 Tagen ab. Certbot richtet beim Installieren automatisch einen Systemd-Timer ein der zweimal täglich prüft ob Zertifikate erneuert werden müssen. Du musst nichts weiter tun.

Den Status des Timers prüfst du mit:

sudo systemctl status certbot.timer

Einen manuellen Erneuerungstest (ohne echte Erneuerung) machst du mit:

sudo certbot renew --dry-run

Wenn der Test ohne Fehler durchläuft, ist alles korrekt eingerichtet.

Mein Tipp

Richte die E-Mail-Benachrichtigungen von Certbot ein, auch wenn die automatische Erneuerung läuft. Wenn ein Zertifikat trotzdem mal nicht erneuert wird, z.B. weil der Server vorübergehend offline war, bekommst du rechtzeitig eine Warnung bevor es abläuft.

Der nächste sinnvolle Schritt

Wenn du diesen Teil verstanden hast, passen diese Seiten als Nächstes:

Häufige Fragen

Warum brauche ich HTTPS?

HTTPS verschlüsselt Daten zwischen Browser und Dienst und ist für Logins, Tokens und Formulare Pflicht.

Was macht Let’s Encrypt?

Let’s Encrypt stellt kostenlose TLS-Zertifikate aus, die automatisch erneuert werden können.

Was passiert bei abgelaufenem Zertifikat?

Browser warnen vor der Seite oder blockieren Zugriffe. Automatische Erneuerung und Monitoring sind deshalb wichtig.