Let’s Encrypt Automatisierung: Certbot, acme.sh und Renewal Hooks

Die Automatisierung von TLS-Zertifikaten ist ein zentraler Bestandteil moderner Webserver-Administration. Let’s Encrypt bietet kostenfreie Zertifikate, die jedoch nur 90 Tage gültig sind. Um Ausfälle durch abgelaufene Zertifikate zu vermeiden, sind Tools wie Certbot oder acme.sh essenziell, da sie die Ausstellung und Erneuerung automatisieren. In diesem Leitfaden erfahren Einsteiger, IT-Studierende und Junior Network Engineers praxisnah, wie Zertifikate automatisch erstellt, erneuert und in bestehende Webserver-Konfigurationen integriert werden.

Grundlagen von Let’s Encrypt

Let’s Encrypt ist eine Zertifizierungsstelle, die kostenfreie X.509-Zertifikate ausstellt. Die wichtigsten Eigenschaften sind:

  • Automatisierte Ausstellung via ACME-Protokoll
  • Kurzlebige Zertifikate (90 Tage), die regelmäßige Erneuerung erfordern
  • Unterstützung für HTTP-01, DNS-01 und TLS-ALPN-01 Challenges
  • Integration in Nginx, Apache und andere Webserver

Certbot: Offizielles ACME-Tool

Installation auf Linux

# Ubuntu/Debian
sudo apt update
sudo apt install certbot python3-certbot-nginx

CentOS/RHEL

sudo dnf install certbot python3-certbot-nginx

Zertifikat erstellen

sudo certbot --nginx -d example.com -d www.example.com

Certbot erkennt automatisch die Nginx-Konfiguration, passt die Virtual Hosts an und aktiviert HTTPS.

Automatische Erneuerung prüfen

sudo certbot renew --dry-run

Mit --dry-run kann die Erneuerung simuliert werden, um Probleme frühzeitig zu erkennen.

acme.sh: Leichtgewichtige Alternative

Installation

curl https://get.acme.sh | sh
# Danach die Shell neu laden
source ~/.bashrc

Zertifikat ausstellen

# HTTP-01 Challenge
acme.sh --issue -d example.com -w /var/www/html

DNS-01 Challenge für Wildcards

acme.sh --issue -d '*.example.com' --dns dns_cf

Zertifikat installieren

acme.sh --install-cert -d example.com 
--key-file /etc/ssl/private/example.com.key 
--fullchain-file /etc/ssl/certs/example.com.crt 
--reloadcmd "systemctl reload nginx"

Der --reloadcmd Hook sorgt dafür, dass Nginx nach der Zertifikaterneuerung automatisch neu geladen wird.

Renewal Hooks

Renewal Hooks ermöglichen das Ausführen von Kommandos nach erfolgreicher Zertifikaterneuerung. Typische Einsatzfälle:

  • Webserver neu laden (Nginx, Apache)
  • Proxy- oder Load-Balancer aktualisieren
  • Monitoring-Systeme benachrichtigen

Beispiel mit Certbot

sudo certbot renew --post-hook "systemctl reload nginx"

Beispiel mit acme.sh

acme.sh --install-cert -d example.com 
--key-file /etc/ssl/private/example.com.key 
--fullchain-file /etc/ssl/certs/example.com.crt 
--reloadcmd "systemctl reload nginx"

Automatisierung via Cronjobs

Certbot installiert bei der Systeminstallation in der Regel einen Cronjob oder Systemd-Timer. Für acme.sh empfiehlt sich ein eigener Cronjob:

# Öffnen des Crontabs
crontab -e

Beispiel: täglicher Check um 2:30 Uhr

30 2 * * * "~/.acme.sh"/acme.sh --cron --home "~/.acme.sh"

Best Practices

  • Zertifikate rechtzeitig erneuern (mindestens alle 60 Tage testen)
  • Automatisierte Hooks für Webserver-Reload nutzen
  • DNS-01 Challenge für Wildcards einsetzen
  • Monitoring auf Ablauf und Fehler einrichten
  • Redundante Server prüfen, damit alle Frontends HTTPS korrekt nutzen
  • Backup der Schlüssel und Zertifikate sicher speichern
  • Firewall und Ports 80/443 für Challenge-Zugriffe freigeben

Testen der Automatisierung

Manuelle Testläufe

certbot renew --dry-run
acme.sh --renew -d example.com --force

Überprüfung der HTTPS-Konfiguration

  • SSL Labs:
    https://www.ssllabs.com/ssltest/
  • Mozilla Observatory für Header und TLS-Konfiguration

Integration in komplexe Webstacks

In Multi-App-Umgebungen empfiehlt sich:

  • Gemeinsamer Zertifikatsstore für alle Nginx-Server
  • Hooks für Load-Balancer und Reverse Proxies
  • CI/CD-Pipelines zur automatischen Bereitstellung aktualisierter Zertifikate
  • Containerisierte Deployments mit mounted Volumes für Zertifikate

IPv4/IPv6 und Let’s Encrypt

Certbot und acme.sh unterstützen beide IPv4 und IPv6. DNS-Einträge sollten korrekt gesetzt sein:

<math>
IPv4: example.com A 203.0.113.10
IPv6: example.com AAAA 2001:db8::10
</math>

Fazit der Automatisierungsstrategie

  • Regelmäßige, automatisierte Zertifikaterneuerung minimiert Ausfallrisiken
  • Hooks gewährleisten sofortige Integration ins System
  • Certbot ist komfortabel für Webserver, acme.sh flexibel für DNS- und Container-Setups
  • Monitoring und Tests sichern die langfristige Stabilität
  • Dokumentation der Hooks, Cronjobs und Zertifikatpfade ist essenziell

Konfiguriere Cisco Router & Switches und liefere ein Packet-Tracer-Lab/GNS3

Ich biete professionelle Unterstützung im Bereich Netzwerkkonfiguration und Network Automation für private Anforderungen, Studienprojekte, Lernlabore, kleine Unternehmen sowie technische Projekte. Ich unterstütze Sie bei der Konfiguration von Routern und Switches, der Erstellung praxisnaher Topologien in Cisco Packet Tracer, dem Aufbau und Troubleshooting von GNS3- und EVE-NG-Labs sowie bei der Automatisierung von Netzwerkaufgaben mit Netmiko, Paramiko, NAPALM und Ansible. Kontaktieren Sie mich jetzt – klicken Sie hier.

Meine Leistungen umfassen:

  • Professionelle Konfiguration von Routern und Switches

  • Einrichtung von VLANs, Trunks, Routing, DHCP, NAT, ACLs und weiteren Netzwerkfunktionen

  • Erstellung von Topologien und Simulationen in Cisco Packet Tracer

  • Aufbau, Analyse und Fehlerbehebung von Netzwerk-Labs in GNS3 und EVE-NG

  • Automatisierung von Netzwerkkonfigurationen mit Python, Netmiko, Paramiko, NAPALM und Ansible

  • Erstellung von Skripten für wiederkehrende Netzwerkaufgaben

  • Dokumentation der Konfigurationen und Bereitstellung nachvollziehbarer Lösungswege

  • Konfigurations-Backups, Optimierung bestehender Setups und technisches Troubleshooting

Benötigen Sie Unterstützung bei Ihrem Netzwerkprojekt, Ihrer Simulation oder Ihrer Network-Automation-Lösung? Kontaktieren Sie mich jetzt – klicken Sie hier.

Related Articles