Fernwartung Download starten

Let's Encrypt Zertifikate mit ACME automatisieren

SecurityLinuxServerNetzwerk
Let's Encrypt Zertifikate mit ACME automatisieren

HTTPS ist längst kein optionales Extra mehr. Suchmaschinen bewerten unverschlüsselte Seiten ab, Browser zeigen Warnungen an, und sensible Daten ohne TLS zu übertragen ist ein Sicherheitsrisiko. Doch TLS-Zertifikate manuell zu verwalten — kaufen, installieren, erneuern — ist aufwendig und fehleranfällig. Let’s Encrypt hat dieses Problem 2015 gelöst: Kostenlose, automatisch ausgestellte Zertifikate über das ACME-Protokoll. Dieser Artikel zeigt, wie Sie ACME auf OPNsense und Linux einrichten, Wildcard-Zertifikate nutzen und die Erneuerung vollständig automatisieren.

Warum HTTPS überall Pflicht ist

Seit 2018 markiert Chrome alle HTTP-Seiten als „Nicht sicher”. Google bevorzugt HTTPS-Seiten im Ranking. Für APIs, Webmail, Admin-Panels und interne Anwendungen gilt dasselbe: Ohne TLS können Zugangsdaten, Session-Cookies und sensible Geschäftsdaten im Klartext abgefangen werden. Auch interne Dienste im LAN verdienen Verschlüsselung — ein kompromittierter Client im Netzwerk reicht aus, um unverschlüsselten Traffic mitzulesen.

Das ACME-Protokoll im Überblick

Das Automatic Certificate Management Environment (ACME) ist ein offenes Protokoll (RFC 8555), das die Ausstellung und Erneuerung von TLS-Zertifikaten vollständig automatisiert. Der ACME-Client auf Ihrem Server kommuniziert mit der Certificate Authority (CA) und beweist, dass Sie die Domain kontrollieren. Nach erfolgreicher Validierung wird das Zertifikat automatisch ausgestellt und lokal gespeichert.

Let’s Encrypt vs. kommerzielle CAs

KriteriumLet’s EncryptKommerzielle CA
KostenKostenlos50–500 € / Jahr
ZertifikatstypDomain Validated (DV)DV, OV, EV
Laufzeit90 Tage1 Jahr
WildcardJa (DNS-01)Ja
AutomatisierungACME nativTeilweise
SupportCommunityKommerzieller Support
Organisation im ZertifikatNeinJa (OV/EV)

Für die meisten KMU reicht Let’s Encrypt vollständig aus. Nur wer Organization Validation (OV) oder Extended Validation (EV) benötigt — etwa für regulierte Branchen —, braucht eine kommerzielle CA.

Validierungsmethoden: HTTP-01, DNS-01 und TLS-ALPN-01

Bevor eine CA ein Zertifikat ausstellt, muss der Antragsteller nachweisen, dass er die Domain kontrolliert. ACME unterstützt drei Methoden:

HTTP-01 — Die CA fordert eine Datei unter http://ihredomain.de/.well-known/acme-challenge/TOKEN an. Der Webserver muss diese Datei ausliefern. Einfachste Methode, funktioniert aber nicht für Wildcard-Zertifikate und erfordert Port 80.

DNS-01 — Die CA prüft einen TXT-Record unter _acme-challenge.ihredomain.de. Funktioniert für Wildcard-Zertifikate und erfordert keinen offenen Webserver. Braucht aber API-Zugang zum DNS-Provider.

TLS-ALPN-01 — Die Validierung erfolgt über eine spezielle TLS-Verbindung auf Port 443. Nützlich, wenn Port 80 nicht verfügbar ist. Keine Wildcard-Unterstützung.

ACME auf OPNsense einrichten

OPNsense bietet mit dem os-acme-client Plugin eine komfortable GUI-Lösung. Die Einrichtung in vier Schritten:

  1. Plugin installieren: Unter System > Firmware > Plugins das Paket os-acme-client installieren
  2. Account anlegen: Unter Services > ACME Client > Accounts eine neue Registrierung bei Let’s Encrypt erstellen
  3. Challenge konfigurieren: HTTP-01 für einfache Domains oder DNS-01 (mit API-Zugang zu Cloudflare, Hetzner, Route53 etc.) für Wildcards
  4. Zertifikat erstellen: Unter Certificates die Domain und den Challenge-Typ auswählen — OPNsense übernimmt Ausstellung und Renewal automatisch

Die Zertifikate lassen sich direkt im HAProxy-Plugin oder für das Web-GUI verwenden. Renewal erfolgt automatisch alle 60 Tage.

Certbot auf Linux einrichten

Certbot ist der offizielle ACME-Client der Electronic Frontier Foundation. Installation und erstes Zertifikat:

# Certbot installieren (Debian/Ubuntu)
sudo apt update && sudo apt install certbot python3-certbot-nginx -y

# Zertifikat für nginx anfordern (HTTP-01)
sudo certbot --nginx -d ihredomain.de -d www.ihredomain.de

# Zertifikat standalone anfordern (ohne Webserver-Plugin)
sudo certbot certonly --standalone -d ihredomain.de

Certbot passt die nginx-Konfiguration automatisch an und richtet einen systemd-Timer für die Erneuerung ein.

Wildcard-Zertifikate mit DNS-01

Ein Wildcard-Zertifikat (*.ihredomain.de) sichert alle Subdomains mit einem einzigen Zertifikat ab. Voraussetzung ist die DNS-01-Validierung:

# Wildcard-Zertifikat mit Cloudflare-DNS
sudo certbot certonly --dns-cloudflare \
  --dns-cloudflare-credentials /etc/letsencrypt/cloudflare.ini \
  -d ihredomain.de -d "*.ihredomain.de"

Die Credentials-Datei enthält den API-Token:

dns_cloudflare_api_token = IHR_CLOUDFLARE_API_TOKEN

Dateiberechtigungen nicht vergessen: chmod 600 /etc/letsencrypt/cloudflare.ini.

Auto-Renewal mit systemd-Timern

Certbot richtet bei der Installation einen systemd-Timer ein. Prüfen Sie, ob er aktiv ist:

# Timer-Status prüfen
sudo systemctl status certbot.timer

# Manueller Renewal-Test (ohne echte Erneuerung)
sudo certbot renew --dry-run

Falls Sie einen eigenen Timer benötigen, etwa für einen Post-Renewal-Hook:

# Renewal mit automatischem nginx-Reload
sudo certbot renew --deploy-hook "systemctl reload nginx"

Der Timer läuft standardmäßig zweimal täglich. Let’s Encrypt erneuert Zertifikate erst ab 30 Tagen vor Ablauf — der häufige Check stellt sicher, dass Netzwerkprobleme keinen Ausfall verursachen.

Zertifikate in nginx und Apache deployen

Nach der Ausstellung liegen die Zertifikate unter /etc/letsencrypt/live/ihredomain.de/. Die Einbindung in den Webserver:

nginx:

server {
    listen 443 ssl http2;
    server_name ihredomain.de;
    ssl_certificate     /etc/letsencrypt/live/ihredomain.de/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/ihredomain.de/privkey.pem;
}

Apache:

<VirtualHost *:443>
    ServerName ihredomain.de
    SSLCertificateFile    /etc/letsencrypt/live/ihredomain.de/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/ihredomain.de/privkey.pem
</VirtualHost>

Häufige Fehler und Stolperfallen

  • Rate Limits: Let’s Encrypt erlaubt maximal 50 Zertifikate pro registrierter Domain pro Woche und 5 fehlgeschlagene Validierungen pro Stunde. Testen Sie immer mit --staging, bevor Sie auf Produktion wechseln
  • DNS-Propagation: Bei DNS-01 kann es bis zu 5 Minuten dauern, bis der TXT-Record weltweit sichtbar ist. Certbot wartet standardmäßig, aber bei langsamen Providern hilft --dns-cloudflare-propagation-seconds 60
  • Port 80 blockiert: HTTP-01 erfordert eingehenden Traffic auf Port 80. Firewalls, Load Balancer oder ISP-Sperren verhindern die Validierung — in diesem Fall auf DNS-01 umsteigen
  • Vergessene Subdomains: Jede Subdomain braucht entweder ein eigenes Zertifikat oder muss im Wildcard-Zertifikat enthalten sein
  • Berechtigungen: Die Zertifikatsdateien gehören root. Webserver-Prozesse brauchen Leserechte auf den privaten Schlüssel — prüfen Sie die Gruppenzugehörigkeit

Monitoring mit DATAZONE Control

Ein abgelaufenes Zertifikat bedeutet sofortigen Ausfall: Browser blockieren die Verbindung, APIs liefern Fehler, Nutzer verlieren das Vertrauen. Mit DATAZONE Control überwachen wir die Ablaufdaten aller Zertifikate und warnen rechtzeitig, bevor ein Renewal fehlschlägt. Das System prüft nicht nur das Ablaufdatum, sondern auch die Zertifikatskette, den verwendeten Algorithmus und die TLS-Konfiguration des Servers. So bleiben auch komplexe Multi-Domain-Setups unter Kontrolle.


Sie möchten TLS-Zertifikate automatisieren und Ihre Server absichern? Unsere Linux-Spezialisten richten ACME für Ihre Infrastruktur ein — inklusive Wildcard-Zertifikaten, Auto-Renewal und Monitoring. Kontaktieren Sie uns für eine unverbindliche Beratung.

Mehr zu diesen Themen:

IT-Beratung gewünscht?

Kontaktieren Sie uns für eine unverbindliche Beratung zu Proxmox, OPNsense, TrueNAS und mehr.

Jetzt Kontakt aufnehmen