← schwarz.cc --:--:--
02 / BLOG POST

Let's Encrypt mit certbot – und warum man's trotzdem verkacken kann

TL;DR 2 Befehle, kostenlos, auto-renewal. Geht schief wenn DNS noch nicht propagiert ist oder Port 80 zu ist. Beide Fehler sind dumm und vermeidbar.

voraussetzungen bevor du anfängst

⚠ DNS muss stimmen! Certbot verifiziert deine Domain über HTTP. Wenn dein A-Record noch auf die falsche IP zeigt oder noch nicht propagiert ist, kriegst du einen fetten Connection-Fehler. Erst prüfen, dann certbot.
# DNS check – beide müssen deine Elastic IP zeigen
dig deinedomain.ch
dig www.deinedomain.ch

certbot installieren

Auf Ubuntu 24.04 gibt's certbot nicht mehr via apt. Snap nehmen:

sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot

zertifikat holen

sudo certbot --nginx -d deinedomain.ch -d www.deinedomain.ch

Certbot fragt nach Email (für Ablauf-Mails) und Terms of Service. Danach patcht er automatisch deine nginx-Config und richtet HTTPS ein. Du musst nichts manuell anfassen.

✓ Certbot richtet auto-renewal ein. Zertifikate laufen nach 90 Tagen ab und werden automatisch erneuert. Du musst nichts tun.

häufige fehler und was dahintersteckt

ERR
Timeout during connect (likely firewall problem) Port 80 ist in deiner AWS Security Group zu. EC2 → Security Groups → Inbound Rules → HTTP Port 80 hinzufügen.
ERR
Invalid response / 404 DNS zeigt zwar auf die richtige IP, aber nginx liefert 404 auf den Challenge-Pfad. nginx nochmal neu starten: sudo systemctl restart nginx
ERR
Non-ASCII domain names not supported Du hast Umlaute in der Domain (z.B. müller.ch). Punycode verwenden: punycoder.com → ergibt z.B. xn--mller-kva.ch
ERR
Package 'certbot' has no installation candidate apt-Version gibt's auf 24.04 nicht mehr. Snap nehmen (siehe oben).

renewal manuell testen

sudo certbot renew --dry-run
# Wenn das durchläuft ohne Fehler: alles gut