Nginx Lets Encrypt und Certbot

Aus Xinux Wiki
Version vom 31. Oktober 2026, 14:14 Uhr von Thomas.will@claude (Diskussion | Beiträge) (Neue Seite: Lets Encrypt und Certbot)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

Automatisierte TLS-Zertifikate für öffentlich erreichbare Nginx-Server mit Let's Encrypt und Certbot. Ergänzt Nginx Zertifikate/Nginx https (dort: manuell/selbstsigniert).

Voraussetzungen

  • ein öffentlicher DNS-Eintrag zeigt bereits auf diesen Server (server_name allein erzeugt keinen DNS-Eintrag, siehe Nginx Grundkonfiguration)
  • Domainkontrolle
  • die HTTP-01-Challenge braucht einen von außen erreichbaren Port 80 (oder eine andere unterstützte Challenge-Methode, z. B. DNS-01)

Installation (Debian/Ubuntu)

sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d example.com

Certbot erkennt den passenden server-Block automatisch, trägt listen 443 ssl; sowie ssl_certificate/ssl_certificate_key ein und bietet an, Port 80 automatisch auf HTTPS weiterzuleiten.

Erneuerung

sudo certbot renew --dry-run

Prüft, ob die automatische Erneuerung funktionieren würde, ohne ein echtes Zertifikat auszustellen (zählt nicht gegen die Let's-Encrypt-Rate-Limits). Das Paket richtet normalerweise selbst einen Timer oder Service dafür ein:

systemctl list-timers | grep certbot

Prüfen

curl -I https://example.com

Zusätzlich das Ablaufdatum im Blick behalten – Zertifikate von Let's Encrypt gelten 90 Tage, die automatische Erneuerung greift normalerweise rechtzeitig vorher.

Vorsicht

  • Zertifikate nie für Domains beantragen, die man nicht kontrolliert (Rate Limits bei Let's Encrypt, Missbrauchsrisiko)
  • Port 80 muss während Ausstellung und Erneuerung erreichbar sein – eine Firewall-Regel, die ihn sperrt, lässt die automatische Erneuerung still scheitern, bis das Zertifikat irgendwann abgelaufen ist
  • Bei mehreren server-Blöcken: certbot --nginx ohne -d fragt interaktiv nach, mit -d einen oder mehrere Hostnamen gezielt angeben

Unterschied zu den bestehenden Zertifikats-Seiten

Nginx Zertifikate, Nginx https und Nginx Client Zertifikat behandeln manuell erzeugte bzw. selbstsignierte Zertifikate und mTLS – passend für interne Testumgebungen ohne öffentliche Domain. Let's Encrypt/Certbot ist der Weg für öffentlich erreichbare Server mit echter Domain: automatisiert, kostenlos, mit automatischer Erneuerung statt manueller Pflege.

Links