Let’s Encrypt und TLS-Zertifikate
Kurz: Für HTTPS braucht ein Server ein Zertifikat, das bestätigt: „Dieser Schlüssel gehört zu dieser Domain.“ Let’s Encrypt stellt solche Zertifikate kostenlos und automatisch aus.
Wie die Prüfung funktioniert (ACME)
Das Protokoll ACME lässt den Server beweisen, dass ihm die Domain gehört:
- HTTP-01: Let’s Encrypt ruft eine bestimmte Datei unter
http://domain/.well-known/acme-challenge/...ab. Port 80 muss erreichbar sein. - DNS-01: Man legt einen bestimmten TXT-Eintrag im DNS an (DNS). Nötig für Wildcard-Zertifikate (
*.beispiel.de) und für Server ohne öffentlichen Zugang.
Mit certbot
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d beispiel.de -d www.beispiel.de
sudo certbot renew --dry-run # Erneuerung testenZertifikate gelten nur 90 Tage, deshalb erneuert ein Timer sie automatisch (üblich ab 30 Tage Restlaufzeit). Caddy erledigt alles ohne zusätzliches Werkzeug, siehe Webserver im Vergleich: nginx, Apache und Caddy.
Was im Zertifikat steht
Domainnamen, Gültigkeit, öffentlicher Schlüssel und die Unterschrift der Ausstellerin. Der Browser prüft die Kette bis zu einer vertrauten Stelle, siehe Digitale Signatur und HTTPS.
Typische Probleme
- Port 80/443 durch die Firewall blockiert.
- DNS zeigt noch auf die alte Adresse.
- Zu viele Anfragen (es gibt Limits je Domain und Woche).
- Erneuerung läuft nicht, weil der Timer fehlt: regelmäßig prüfen.
Siehe auch: WireGuard: ein schlankes VPN