ACME einrichten: Schritt-für-Schritt-Anleitung für Apache, Nginx, Kubernetes und DNS-01

ACME einrichten ist kein Hexenwerk – wenn man weiß, was zu tun ist. Diese Anleitung führt Sie in vier Setup-Szenarien: Apache und Nginx auf Linux (per Certbot), Kubernetes mit cert-manager und ein DNS-01-Setup mit acme.sh – der Standard-Weg für Wildcards, interne Hosts und Server ohne öffentliche Erreichbarkeit. Jeder Pfad ist als nummerierte Schrittfolge dokumentiert. Wir zeigen sowohl das Standard-Setup gegen Let’s Encrypt als auch die Konfiguration mit LEMARIT Certificate Automation als ACME-Endpoint.

Sie möchten keine Setup-Anleitung, sondern einen fertigen Service?

Werfen Sie einen Blick auf unsere Managed SSL-Automatisierung

Voraussetzungen vor dem Setup

Bevor Sie loslegen, prüfen Sie diese Checkliste – sie erspart 80 Prozent der typischen Setup-Probleme:

  • Domain-Kontrolle: Sie können DNS-Einträge für die Domain ändern (auch wenn Sie HTTP-01 nutzen, brauchen Sie das für CAA-Records).
  • Port 80 erreichbar (nur bei HTTP-01): Eingehender HTTP-Traffic auf Port 80 ist aus dem öffentlichen Internet möglich.
  • Webserver oder Cluster läuft: Apache, Nginx oder ein Kubernetes-Cluster sind konfiguriert und die zu sichernde Domain ist eingerichtet.
  • Root- bzw. Admin-Rechte: Sie haben administrativen Zugriff auf Server oder Cluster.
  • CAA-Record optional vorbereitet: Wenn Sie CAA-Records nutzen, ist die gewünschte CA im DNS-Eintrag freigegeben.
  • DNS-Provider mit API (nur bei DNS-01): Sie haben einen API-Token Ihres DNS-Providers oder einen TSIG-Key zur Anbindung über RFC 2136. Bei der LEMARIT Certificate Automation entfällt dieser Punkt in den meisten Fällen, weil der ACME-Endpoint die DCV-Validierung serverseitig übernimmt.

ACME einrichten unter Apache (Linux + Certbot, HTTP-01)

Der klassische Setup-Pfad für Linux-Webserver mit Apache. Folgender Ablauf bezieht sich auf Debian/Ubuntu – andere Distributionen funktionieren analog mit dem jeweiligen Paketmanager.

Schritt 1 – Certbot installieren

Aktualisieren Sie die Paketlisten und installieren Sie Certbot mit dem Apache-Plug-in:

				
					sudo apt update install
sudo apt install certbot python3-certbot-apache
				
			

Schritt 2 – Zertifikat beantragen (Standard mit Let's Encrypt)

Starten Sie Certbot im Apache-Modus mit einer oder mehreren Domains. Certbot übernimmt die HTTP-01-Validierung und passt die Apache-Konfiguration automatisch an:

				
					sudo certbot \
     --apache \
     -d example.com \
     -d www.example.com
				
			
Hinweis zum Verhalten in der Praxis: Läuft nur Apache oder nur Nginx auf dem System, erkennt Certbot das Server-Modell automatisch – der
--apache
-Parameter ist dann optional. Ist Apache bereits mit VirtualHosts konfiguriert, listet Certbot die vorhandenen Domains interaktiv auf und fragt, für welche ein Zertifikat ausgestellt werden soll. Die
-d
-Angaben dienen dann vor allem der Skriptbarkeit und Reproduzierbarkeit.

Schritt 3 – Zertifikat beantragen mit LEMARIT als ACME-Endpoint

Da die LEMARIT Certificate Automation kein öffentlich-freier ACME-Endpoint wie Let’s Encrypt ist, muss der Client vor der ersten Nutzung per External Account Binding (EAB) mit Ihrem LEMARIT-Account gekoppelt werden. Die dafür notwendigen Credentials – ein Key Identifier (
KID
) und ein HMAC-Key – erzeugen Sie einmalig im WebUI der LEMARIT.app. Anders als bei Let’s Encrypt wird bei LEMARIT keine separate Kontakt-E-Mail im ACME-Account hinterlegt: Über die EAB-Bindung ist Ihr ACME-Account bereits mit dem LEMARIT.app-Account und der dort hinterlegten E-Mail-Adresse verknüpft – eine zusätzliche Kontaktadresse ist damit weder nötig noch möglich. Ablauf- und Sicherheits-Benachrichtigungen erhalten Sie zentral über die in der LEMARIT.app hinterlegten Kanäle.

Einmalig: Account registrieren mit EAB

				
					sudo certbot register \
     --server https://acme.lemarit.cloud/directory \
     --eab-kid <IHRE_KID> \
     --eab-hmac-key <IHR_HMAC_KEY> \
     --register-unsafely-without-email \
     --agree-tos
				
			

Anschließend: Zertifikate anfragen (EAB-Parameter entfallen)

				
					sudo certbot \
     --apache \
     --server https://acme.lemarit.cloud/directory \
     --preferred-challenges dns \
     --issuance-timeout 600 \
     -d example.com \
     -d www.example.com
				
			
Certbot merkt sich die EAB-Bindung im Account-Verzeichnis und braucht bei jedem weiteren Renewal nur noch den
--server
-Parameter. Die ausstellende Partner-CA steuern Sie zentral im WebUI der LEMARIT.app, ohne die Apache-Konfiguration jemals anpassen zu müssen.

Schritt 4 – Automatische Verlängerung testen

Certbot legt bei der Installation automatisch einen Cron-Job oder Systemd-Timer an. Testen Sie die Verlängerungslogik im Trockenlauf:
				
					sudo certbot renew \
     --dry-run
				
			
Wenn dieser Befehl ohne Fehler durchläuft, ist die Automatisierung funktionsfähig. Reale Renewals starten ab 30 Tagen vor Ablauf automatisch.

Schritt 5 – HTTPS-Konfiguration final prüfen

Werfen Sie einen Blick in die von Certbot angepasste Apache-Konfiguration (typischerweise
/etc/apache2/sites-enabled/-le-ssl.conf
) und prüfen Sie, dass die HTTPS-Sektion korrekt gesetzt ist – insbesondere die SSL-Direktiven, Weiterleitungen und
ServerName
/
ServerAlias
-Einträge. In der Praxis passt Certbot die Basis-Konfiguration zuverlässig an, feinere Details wie HSTS-Header oder CSP-Regeln müssen aber manuell nachgezogen werden. Falls Sie manuelle Änderungen vornehmen, laden Sie Apache anschließend neu:
				
					sudo systemctl reload apache2
				
			
Rufen Sie danach Ihre Domain im Browser über HTTPS auf und prüfen Sie das Zertifikat. Für eine umfassende Bewertung empfehlen wir den SSL Labs Server Test als externe Quelle.

ACME einrichten unter Nginx (Linux + Certbot, HTTP-01)

Sehr ähnlich zum Apache-Setup, mit einer angepassten Plug-in-Wahl.

Schritt 1 – Certbot mit Nginx-Plug-in installieren

				
					sudo apt update
sudo apt install certbot python3-certbot-nginx
				
			

Schritt 2 – Zertifikat beantragen (Standard mit Let's Encrypt)

Starten Sie Certbot mit einer oder mehreren Domains. Certbot erkennt die Nginx-Konfiguration, passt die Server-Blöcke automatisch an und aktiviert HTTPS:
				
					sudo certbot \
     --nginx \
     -d example.com \
     -d www.example.com
				
			
Analog zum Apache-Setup: Ist Nginx der einzige installierte Web-Server, ist der
--nginx
-Parameter optional. Bei bereits vorhandenen Server-Blöcken listet Certbot die konfigurierten Domains interaktiv auf – die
-d
-Angaben dienen dann vor allem der Skriptbarkeit.

Schritt 3 – Zertifikat beantragen mit LEMARIT als ACME-Endpoint

Auch beim Nginx-Setup muss der ACME-Client vor der ersten Nutzung per External Account Binding (EAB) an Ihren LEMARIT-Account gekoppelt werden. Key Identifier (
KID
) und HMAC-Key erzeugen Sie einmalig im WebUI der LEMARIT.app. Eine separate Kontakt-E-Mail wird nicht hinterlegt – über die EAB-Bindung ist Ihr ACME-Account bereits mit Ihrem LEMARIT.app-Account (inkl. hinterlegter E-Mail-Adresse) verknüpft. Daher der Schalter
--register-unsafely-without-email
beim Registrierungs-Aufruf.

Einmalig: Account registrieren mit EAB

				
					sudo certbot register \
     --server https://acme.lemarit.cloud/directory \
     --eab-kid <IHR_KID> \
     --eab-hmac-key <IHR_HMAC_KEY> \
     --register-unsafely-without-email \
     --agree-tos
				
			

Anschließend: Zertifikate anfragen (EAB-Parameter entfallen)

				
					sudo certbot \
     --nginx \
     --server https://acme.lemarit.cloud/directory \
     --preferred-challenges dns \
     --issuance-timeout 600 \
     -d example.com \
     -d www.example.com
				
			
Certbot merkt sich die EAB-Bindung im Account-Verzeichnis; bei jedem weiteren Renewal genügt der
--server
-Parameter.

Schritt 4 – Verlängerung verifizieren

				
					sudo certbot renew \
     --dry-run
				
			

Wenn der Trockenlauf erfolgreich ist, übernimmt der mit installierte Timer die regelmäßige Verlängerung.

Schritt 5 – HTTPS-Konfiguration final prüfen

Werfen Sie einen Blick in die von Certbot angepasste Nginx-Konfiguration (typischerweise
/etc/nginx/sites-enabled/< domain>
oder vergleichbar) und prüfen Sie, dass die HTTPS-Sektion korrekt gesetzt ist – insbesondere die SSL-Direktiven, Weiterleitungen und
server_name
-Einträge. In der Praxis passt Certbot die Basis-Konfiguration zuverlässig an, feinere Details wie HSTS-Header oder CSP-Regeln müssen aber manuell nachgezogen werden. Falls Sie manuelle Änderungen vornehmen, laden Sie Nginx anschließend neu:
				
					sudo systemctl reload nginx
				
			
Rufen Sie danach Ihre Domain im Browser über HTTPS auf und prüfen Sie das Zertifikat. Für eine umfassende Bewertung empfehlen wir den SSL Labs Server Test als externe Quelle.

ACME einrichten in Kubernetes (cert-manager mit DNS-01)

In Kubernetes-Umgebungen ist cert-manager der etablierte Standard für ACME. Er läuft als Controller im Cluster und übernimmt die komplette Lifecycle-Verwaltung von Zertifikaten.

Schritt 1 – cert-manager installieren

Via Helm:

				
					helm repo add jetstack https://charts.jetstack.io
helm repo update
helm install cert-manager jetstack/cert-manager \ 
     --namespace cert-manager \ 
     --create-namespace \
     --set installCRDs=true
				
			
Nach wenigen Sekunden laufen die cert-manager-Pods im
cert-manager
-Namespace.

Schritt 2 – ClusterIssuer für LEMARIT konfigurieren

Analog zu certbot und acme.sh muss auch cert-manager per External Account Binding (EAB) an Ihren LEMARIT-Account gekoppelt werden. Sie benötigen dafür einen Secret im
cert-manager
-Namespace, der den EAB-HMAC-Key aufnimmt.

EAB-Secret anlegen

				
					kubectl create secret generic lemarit-eab-secret \
     --namespace cert-manager \
     --from-literal=secret='<IHR_HMAC_KEY aus LEMARIT.app WebUI>'
				
			

Der HMAC-Key wird in der LEMARIT.app-Ansicht bereits im korrekten Format angezeigt und kann direkt in das Secret übernommen werden – eine zusätzliche Konvertierung ist nicht nötig.

ClusterIssuer definieren

Der LEMARIT-ACME-Endpoint übernimmt die DCV-Validierung serverseitig und gibt cert-manager unmittelbar zurück, dass die Validierung abgeschlossen ist. Ein expliziter Solver-Block im ClusterIssuer ist daher nicht erforderlich – die
solvers
-Liste bleibt leer. Ebenso wird das
email
-Feld nicht gesetzt: Über die EAB-Bindung ist Ihr ACME-Account bereits mit Ihrem LEMARIT.app-Account (inkl. dort hinterlegter E-Mail-Adresse) verknüpft. Eine separate Kontaktadresse im ACME-Account würde vom LEMARIT-Endpoint mit einer Fehlermeldung zurückgewiesen.
				
					apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
  name: lemarit-issuer
spec:
  acme:
    server: https://acme.lemarit.cloud/directory
    externalAccountBinding:
      keyID: <IHR_KID aus LEMARIT.app WebUI>
      keySecretRef:
        name: lemarit-eab-secret
        key: secret
    privateKeySecretRef:
      name: lemarit-account-key
    solvers: []
				
			
Die EAB-Registrierung erfolgt automatisch beim ersten
Certificate
-Antrag – erneute Registrierungen sind nicht nötig. Ablauf- und Sicherheits-Benachrichtigungen erhalten Sie zentral über die in der LEMARIT.app hinterlegten Kanäle. Hinweis für externe DNS-Setups: Läuft Ihr DNS nicht bei LEMARIT und muss der DCV-Namespace explizit angesprochen werden, unterstützt LEMARIT dies über ein cert-manager-Webhook-Plugin. Ein dedizierter Abschnitt zum Webhook-Setup folgt in einer späteren Version dieser Anleitung.

Schritt 3 – Zertifikat anlegen

Erstellen Sie ein
Certificate
-Objekt, das von cert-manager verwaltet wird.
				
					apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
  name: example-com-wildcard
  namespace: default
spec:
  secretName: example-com-tls
  issuerRef:
    name: lemarit-issuer
    kind: ClusterIssuer
  dnsNames:
    - example.com
    - "*.example.com"
				
			
cert-manager beantragt das Zertifikat beim LEMARIT-ACME-Endpoint, erhält das Validierungs-OK direkt von LEMARIT (serverseitig verifiziert) und legt das fertige Zertifikat als Kubernetes-Secret im Namespace ab.

Schritt 4 – Status prüfen

				
					kubectl get certificate -A
kubectl describe certificate example-com-wildcard
				
			
Im
Status
-Feld sollte
Ready: True
stehen. Bei Fehlern liefert das
Events
-Feld konkrete Diagnose-Informationen.

Schritt 5 – Verlängerung verifizieren

cert-manager erneuert Zertifikate standardmäßig, sobald zwei Drittel der Laufzeit erreicht sind – bei einer 200-Tage-Laufzeit also rund 66 Tage vor Ablauf. Über das Feld
spec.renewBefore
im
Certificate
-Objekt lässt sich dieser Zeitpunkt bei Bedarf explizit setzen (z. B.
renewBefore: 720h
für 30 Tage vor Ablauf). Ein Test-Renewal lässt sich manuell mit dem
cmctl
-CLI auslösen:
				
					cmctl renew \
     example-com-wildcard \
     --namespace default
				
			
Alternativ per Annotation (nur ältere cert-manager-Versionen unter v1.11):
				
					kubectl annotate certificate \
     example-com-wildcard \
     cert-manager.io/force-renew=true \
     --overwrite
				
			
Nach dem Trigger können Sie den Verlauf mit
kubectl describe certificate example-com-wildcard
beobachten – im
Events
-Feld sollte innerhalb weniger Sekunden ein Neu-Antrag erscheinen.

ACME mit DNS-01 einrichten (acme.sh + LEMARIT RFC 2136)

Für Setups außerhalb von Kubernetes ist acme.sh besonders minimal invasiv. Im Gegensatz zu Certbot greift es nicht automatisch in Ihre Server-Konfiguration ein, sondern beschränkt sich strikt auf die Zertifikats-Ausstellung und die Ablage der Schlüssel-Dateien. Ihre bestehende Apache- oder Nginx-Konfiguration bleibt unangetastet – ein realer Vorteil in Umgebungen, in denen Config-Änderungen dokumentiert oder review-pflichtig sind und in denen frühere Auto-Anpassungen schon einmal Nacharbeit erzeugt haben.

Die LEMARIT-RFC-2136-Schnittstelle ermöglicht Domainvalidierung via DNS-01 mit acme.sh nativ über den nsupdate-Hook.

Schritt 1 – acme.sh installieren

				
					curl https://get.acme.sh | sh
				
			
Der Installer richtet acme.sh in
~/.acme.sh/
ein und legt einen Cron-Job für die regelmäßige Verlängerung an. Bei anderen ACME-Servern (etwa Let’s Encrypt) würden Sie hier zusätzlich eine Standard-E-Mail für Ablauf-Benachrichtigungen angeben (
sh -s email=admin@example.com
). Bei LEMARIT entfällt das: Der ACME-Account ist über EAB bereits mit Ihrem LEMARIT.app-Account und der dort hinterlegten E-Mail-Adresse verknüpft – eine zusätzliche Kontaktadresse im ACME-Account ist deshalb weder nötig noch möglich. Sicherheits- und Ablauf-Benachrichtigungen erhalten Sie zentral über die in der LEMARIT.app hinterlegten Kanäle.

Schritt 2 – TSIG-Konfiguration für LEMARIT

Für die DNS-01-Validierung nutzt acme.sh den
nsupdate
-Hook mit TSIG-authentifizierten Updates. Sie benötigen zwei Angaben aus dem LEMARIT.app-WebUI: den Hostname des LEMARIT-DNS-Endpoints und eine TSIG-Key-Datei im BIND-kompatiblen Format.

Schritt 2a – TSIG-Key-Datei anlegen

Die aus dem LEMARIT.app-WebUI exportierte Key-Datei folgt dieser Struktur (die konkreten Werte für Schlüsselname, Algorithmus und Secret erhalten Sie beim Export):

				
					key "example-com-tsig" {
    algorithm hmac-sha256;
    secret "<Base64-Secret aus LEMARIT.app>";
};

				
			
Als Algorithmus verwendet LEMARIT aktuell hmac-sha256. Speichern Sie die Datei restriktiv, z. B. unter
/etc/lemarit/tsig-key.conf
mit
chmod 600
, sodass nur der ausführende Nutzer lesen kann.

Schritt 2b – Umgebungsvariablen persistent hinterlegen

acme.sh liest die TSIG-Angaben aus zwei Umgebungsvariablen beim ersten Zertifikats-Antrag aus. Damit sie auch bei späteren Cron- oder Systemd-Läufen verfügbar sind, empfiehlt sich die Ablage in einer eigenen Env-Datei, die vor jedem acme.sh-Aufruf eingelesen wird. Beispiel
/etc/lemarit/acme.env
:
				
					export NSUPDATE_SERVER="ddns.lemarit.cloud" 
export NSUPDATE_KEY="/etc/lemarit/tsig-key.conf"
				
			
Vor dem ersten Zertifikats-Antrag einmal einlesen:
				
					source /etc/lemarit/acme.env
				
			
acme.sh persistiert die Werte nach dem ersten erfolgreichen
--issue
-Aufruf in
~/.acme.sh/account.conf
. Automatisierte Renewals über Cron oder Systemd-Timer finden die Angaben damit ohne erneutes
source
.

Schritt 3 – Wildcard-Zertifikat ausstellen

Auch acme.sh muss beim ersten Zertifikats-Antrag per External Account Binding (EAB) mit Ihrem LEMARIT-Account gekoppelt werden. Analog zu certbot:
KID
und HMAC-Key erhalten Sie im WebUI der LEMARIT.app.

Einmalig: Account registrieren mit EAB

				
					acme.sh --register-account \
     --server https://acme.lemarit.cloud/directory \
     --eab-kid <IHR_KID> \
     --eab-hmac-key <IHR_HMAC_KEY>
				
			

Anschließend: Wildcard-Zertifikat ausstellen (EAB-Parameter entfallen)

				
					acme.sh --issue \ 
     --server https://acme.lemarit.cloud/directory \
     --dns dns_nsupdate \
     -d example.com \
     -d '*.example.com'
				
			
acme.sh setzt automatisch den TXT-Eintrag im LEMARIT-Delegations-Namespace via TSIG-authentifiziertem RFC-2136-Update. Die ausgewählte CA folgt der CNAME-Delegation und validiert den gesetzten TXT-Eintrag. Die EAB-Bindung persistiert acme.sh in
~/.acme.sh/ca/
, sodass automatische Renewals über den Cron-Job keinen erneuten Register-Aufruf brauchen.

Schritt 4 – Zertifikat installieren

Installieren Sie das ausgestellte Zertifikat in das Zielverzeichnis Ihres Webservers und definieren Sie einen Reload-Hook:
				
					acme.sh --install-cert \
     -d example.com \
     --key-file /etc/nginx/ssl/example.com.key \
     --fullchain-file /etc/nginx/ssl/example.com.crt \ 
     --reloadcmd "systemctl reload nginx"

				
			
acme.sh ruft den Reload-Befehl nach jedem erfolgreichen Renewal automatisch auf.

Schritt 5 – Renewal validieren

				
					acme.sh --renew \
     -d example.com \
     --force
				
			
Ein erzwungenes Renewal hilft, das Setup sofort zu verifizieren, ohne auf den natürlichen Renewal-Zeitpunkt warten zu müssen.

Zertifikate per REST-API automatisieren (Alternative zu ACME)

Für Umgebungen, in denen kein ACME-Client zur Verfügung steht oder ein Custom-Integration sinnvoller ist, bietet LEMARIT Certificate Automation eine entwicklerfreundliche REST-API. Sie eignet sich besonders für Legacy-Software, eigene CertOps-Tooling oder Multi-Tenant-Plattformen, in denen ACME nicht passt.

Konzept

Statt einen ACME-Client zu konfigurieren, integrieren Sie LEMARIT direkt aus Ihrem Code oder Skript heraus. Authentifizierung über einen API-Key, optional eingeschränkt über Domain Patterns. Die typischen Operationen sind:

  • Authentifizierung: API-Key in den HTTP-Header eintragen
  • Bestellung: POST-Request mit CSR und gewünschten Domain-Namen
  • DCV-Status abfragen: GET-Request, prüft, wann die Validierung abgeschlossen ist
  • Zertifikat herunterladen: GET-Request liefert das ausgestellte Zertifikat
  • Verlängerung: Identisch zur Bestellung, optional automatisiert über Scheduler

Die vollständige API-Referenz finden Sie in der LEMARIT.app-Dokumentation. Die unten skizzierten Beispiele zeigen das Grundgerüst; für einen produktions-reifen Einstieg stellt LEMARIT zusätzlich eine offizielle Bash-Referenz-Implementation auf GitHub bereit – Details in Schritt 4.

Schritt 1 – API-Key erzeugen

Im LEMARIT.app-WebUI legen Sie einen neuen API-User an und erzeugen einen API-Key. Optional konfigurieren Sie Domain Patterns, um den Zugriffsbereich präzise zu begrenzen – etwa
*.example.com
und
api.example.org
.

Schritt 2 – Zertifikat per API bestellen

Pseudocode mit
curl
(genaue Endpoint-URL und Payload-Struktur gemäß API-Dokumentation):
				
					curl -X POST https://api.lemarit.cloud/v1/certificates \
     -H "Authorization: Bearer ${LEMARIT_API_KEY}" \
     -H "Content-Type: application/json" \
     -d '{
        "csr": "<base64-encoded CSR>",
        "domains": ["example.com", "*.example.com"],
        "ca": "default"
     }'
				
			
Antwort enthält eine
order_id
, mit der Sie den Status abfragen.

Schritt 3 – Status abfragen und Zertifikat abholen

Sobald der Status auf
issued
steht, enthält die Antwort das ausgestellte Zertifikat sowie die komplette Chain.
				
					curl https://api.lemarit.cloud/v1/certificates/<order_id> \
     -H "Authorization: Bearer ${LEMARIT_API_KEY}"

				
			

Schritt 4 – Verlängerung automatisieren

Als Ausgangspunkt für eigene Automatisierungen stellt LEMARIT ein offizielles Bash-Beispiel bereit, das die Bestell- und Abhol-Logik aus Schritt 2 und 3 in eine produktions-reife Struktur verpackt:

LEMARIT Certificate API – Order Certificates (Bash Example)

Das Projekt implementiert insbesondere zwei operative Details, die im Do-It-Yourself-Setup häufig übersehen werden:

  • State-Machine für den Order-Lifecycle, sodass wartende oder abgebrochene Bestellungen bei einem Neustart des Schedulers sauber wieder aufgenommen werden – statt sie neu zu starten und damit die vorherige Ausstellung zu verlieren.
  • Dedup-Logik, die verhindert, dass parallele Läufe für dieselbe Domain zu doppelten Bestellungen führen. Das ist ein häufiges Problem in HA-Umgebungen oder wenn ein Cronjob unmittelbar vor einem manuellen Rerun anläuft.

Sie können das Repository direkt in Ihre Ansible-/Chef-/Puppet-Pipeline einbinden, an Ihre Umgebung anpassen oder als Blueprint für eine Portierung in Python, Go oder Ihre bevorzugte Sprache verwenden.

Häufige Fehler beim ACME-Setup – und wie Sie sie lösen

In der Praxis tauchen einige Fehlerbilder immer wieder auf. Hier die wichtigsten:

„Connection refused" auf Port 80

Ursache: HTTP-01-Validierung schlägt fehl, weil Port 80 nicht aus dem öffentlichen Internet erreichbar ist – meist wegen Firewall-Regeln oder weil HTTP-Traffic generell abgewiesen wird.
Lösung: Port 80 zumindest für die Validierung öffnen oder auf DNS-01 wechseln.

„DNS problem: NXDOMAIN" beim Wildcard

Ursache: Der
_acme-challenge
-TXT-Eintrag wurde nicht (oder zu spät) propagiert.
Lösung: TTL-Werte prüfen, ggf. acme.sh mit
--dnssleep
-Zeit konfigurieren. Bei der LEMARIT-Anbindung über RFC 2136 entfällt das Propagations-Problem in der Regel, weil der DCV-Namespace direkt geschrieben wird.

„Too many failed authorizations recently"

Ursache: Sie haben das Rate-Limit der CA überschritten – typischerweise bei wiederholten Fehlversuchen.
Lösung: Setup auf einer Staging-Umgebung testen (Let's Encrypt bietet dafür den Staging-Endpoint). Bei LEMARIT Certificate Automation ist die zentrale Bestellschicht so dimensioniert, dass Rate-Limits in der Praxis selten ein Thema sind.

Renewal funktioniert nicht automatisch

Ursache: Cron-Job oder Systemd-Timer wurde nicht korrekt eingerichtet bzw. deaktiviert.
Lösung:
systemctl list-timers | grep certbot
oder den Cron-Status prüfen. Falls fehlend, Timer manuell aktivieren.

CAA-Record blockiert Ausstellung

Ursache: Ein bestehender CAA-Record erlaubt nur eine andere CA als die, bei der Sie das Zertifikat beantragen.
Lösung: CAA-Record im DNS um die gewünschte CA erweitern oder anpassen. Bei der LEMARIT-Anbindung müssen Sie den CAA-Record entsprechend der konfigurierten Partner-CA pflegen.

cert-manager bleibt im „Pending"-Status

Ursache: TSIG-Authentifizierung schlägt fehl, der Solver erreicht den DNS-Server nicht, oder die CNAME-Delegation ist nicht korrekt gesetzt.
Lösung:
kubectl describe challenge
zeigt die konkrete Fehlermeldung. Häufige Punkte: TSIG-Algorithmus falsch konfiguriert (LEMARIT unterstützt aktuell nur HMAC-SHA256), Network-Policy blockiert ausgehende DNS-Updates oder die
_acme-challenge
-CNAME wurde noch nicht gesetzt.

Eigenbetrieb versus zentrale Verwaltung

Die in dieser Anleitung gezeigten Setups skalieren technisch: Auf einem Server funktionieren sie genauso wie auf hundert oder tausend. Der Konfigurations-Aufwand pro System bleibt der gleiche. Das ist die gute Nachricht.

Die weniger gute: Mit jeder zusätzlichen ACME-Instanz wachsen im reinen Eigenbetrieb drei Blackbox-Risiken.

Governance-Blackbox. Jeder Server interagiert autark mit Let’s Encrypt oder einer anderen öffentlichen CA. Es gibt keine übergreifende Sicht darüber, welche Zertifikate ausgestellt sind, welche Domains eingebunden werden oder welche Configs zwischenzeitlich manuell nachgebessert wurden. Sobald der Admin, der das Setup einmal eingerichtet hat, das Unternehmen verlässt, ist das kollektive Wissen praktisch verloren.

Kompromittierungs-Blindheit. Wird ein einzelner Server kompromittiert, kann ein Angreifer über den lokalen ACME-Client potenziell weitere Zertifikate ausstellen lassen. Weil keine zentrale Ausgabestelle existiert, fällt das erst auf, wenn irgendwo eine Anomalie beobachtet oder ein externes Monitoring anschlägt.

Audit-Silo. ISO 27001, NIS2 und DORA verlangen zunehmend lückenlose Nachweise darüber, wer wann welches Zertifikat für welche Domain ausgestellt hat. In einem Setup ohne zentrale Sammel-Instanz müssen diese Belege aus verstreuten Log-Dateien mühsam rekonstruiert werden.

Genau hier setzt LEMARIT Certificate Automation an – ohne dass Sie an Ihren Endsystemen etwas ändern müssten. Statt Ihre Certbots, cert-manager- oder acme.sh-Instanzen gegen
acme.letsencrypt.org
laufen zu lassen, konfigurieren Sie sie einmalig auf
https://acme.lemarit.cloud/directory
. Der administrative Aufwand pro Server bleibt identisch. Sie gewinnen dafür bei gleichem operativem Aufwand eine zentrale Verwaltungs-, Auditierungs- und Steuerungsebene: ein WebUI, in dem alle Bestellungen zusammenlaufen; ein Audit-Trail, der ISO-, NIS2- und DORA-konform exportierbar ist; und die Möglichkeit, im Ernstfall Ausstellungen zentral zu unterbinden oder zu widerrufen.

Kurz: Sie ändern nichts am „Wie“ Ihrer Setups – nur am „Wo“ die ACME-Anfragen letztlich landen. Und Sie legen damit die Governance-Ebene ein, die im reinen Do-It-Yourself-Modus strukturell fehlt.

ACME-Clients und die 200-Tage-Regel

Mit der Verkürzung der Zertifikatslaufzeit auf 200 Tage – und perspektivisch auf 100 und 47 Tage – wird die Zuverlässigkeit der Clients zum kritischen Faktor. Ein Client, der gelegentlich Renewals verpasst, war bei jährlichen Laufzeiten lästig, aber tolerierbar. Bei sechs Renewals pro Jahr und Zertifikat führt jeder Ausfall zu einem produktiven Vorfall.

Drei Dinge werden damit unverhandelbar: Robustheit der Client-Software (gepflegte Open-Source-Projekte mit aktiver Community), systemisches Monitoring über alle Clients hinweg und Eskalations-Mechanismen mit klaren Verantwortlichkeiten. LEMARIT Certificate Automation liefert genau diese drei Komponenten als integriertes Paket – unabhängig davon, ob Ihre Endsysteme über ACME oder REST-API angebunden sind.

Häufige Fragen (FAQ) zum ACME-Setup

Wie installiere ich ein ACME SSL-Zertifikat auf meinem Webserver?

Wählen Sie den passenden ACME-Client für Ihre Umgebung (Certbot für Apache/Nginx, cert-manager für Kubernetes, acme.sh für Wildcard- und Container-Setups), installieren Sie ihn, beantragen Sie das Zertifikat per CLI oder Manifest und prüfen Sie, dass die automatische Verlängerung läuft. Die exakten Befehle finden Sie in den jeweiligen Schritt-Anleitungen oben.

Für einen einzelnen Server mit Standard-Konfiguration zwischen 15 Minuten (Certbot auf Linux) und 60 Minuten (cert-manager in Kubernetes inklusive ClusterIssuer-Konfiguration). Komplexere Setups mit DNS-01, Wildcards oder mehreren Domains brauchen entsprechend länger – meist eine bis zwei Stunden für sauberes Setup inklusive Tests.

Im Idealfall nichts. Die Clients erneuern Zertifikate automatisch. Empfehlenswert ist allerdings ein externes Monitoring – etwa ein wöchentlicher SSL-Check über einen Drittanbieter oder ein Monitoring-Tool – um sicherzustellen, dass keine Erneuerung verloren geht. Die LEMARIT Roadmap sieht vor, dass dieses Monitoring ebenfalls Teil der Certificate Lifecycle Management Plattform wird.

Ja, mit zwei Einschränkungen: Bei HTTP-01 muss der Proxy den Pfad
/.well-known/acme-challenge/*
korrekt zum Origin durchreichen. Bei mehreren Origins muss das Token konsistent auf allen verfügbar sein – einfacher ist hier oft die Umstellung auf DNS-01.
Ein einzelner Fehlversuch ist unkritisch – Clients versuchen es typischerweise mehrmals. Kritisch wird es, wenn Fehlversuche unbemerkt bleiben. Externes Monitoring und eine zentrale Eskalation sind daher unverzichtbar, sobald mehr als ein paar Zertifikate im Spiel sind.
Let’s Encrypt bietet einen Staging-Endpoint (
https://acme-staging-v02.api.letsencrypt.org/directory
), auf dem Sie das Setup beliebig oft testen können, ohne Rate-Limits zu beanspruchen. Die ausgestellten Zertifikate sind nicht produktiv vertrauenswürdig, aber technisch identisch. LEMARIT bietet auf Anfrage ebenfalls eine Test-Umgebung an.
Sichern sollten Sie die Account-Keys des ACME-Clients (z. B.
~/.acme.sh/account.key
oder
/etc/letsencrypt/accounts/
). Bei cert-manager sind die Account-Keys als Kubernetes-Secrets gespeichert und sollten Teil Ihres Cluster-Backups sein.

Dagegen brauchen Sie die aktuellen Zertifikats- und Schlüsseldateien selbst nicht zu sichern. Fällt ein System aus, stellt der ACME-Client über den gesicherten Account einfach neue Zertifikate aus – da diese seit der Laufzeit-Umstellung nicht als einzelne Einheit, sondern als Teil eines Abonnements über einen Zeitraum bezogen werden, entstehen dadurch keine zusätzlichen Kosten. Eine gezielte Wiederherstellung alter Zertifikate ist damit strukturell überflüssig.

ACME ist der offene IETF-Standard und passt zu nahezu allen modernen Webservern und Cluster-Tools. Die LEMARIT REST-API ist eine entwicklerfreundliche Alternative für Custom-Integrationen, Legacy-Software ohne ACME-Support oder Multi-Tenant-Plattformen, in denen ACME nicht passt. Beide Wege führen zur selben Plattform und denselben Partner-CAs.

Vom Eigenbetrieb zur Managed-Plattform

Welche Schnittstelle Sie wählen, ist nur die halbe Miete. Die andere Hälfte ist der reibungslose Betrieb über Hunderte oder Tausende Zertifikate hinweg – inklusive Token-Rotation, DNS-Konsistenz, CAA-Pflege und Audit-Trail. LEMARIT Certificate Automation übernimmt diese Komplexität.
©SARIPICTURE Sarah Domandl LEMARIT Stockfotos 0236 20260219
Suchen