Wie managet ihr Let's Encrypt Zertifikate über mehrere Server?

daniel1013

Mitglied
Beiträge
16
Lösungen
3
Likes
44
Punkte
13
Hallo zusammen,

ich stehe gerade vor der Herausforderung, SSL-Zertifikate auf mehreren Servern mit Let's Encrypt zu automatisieren. Bisher habe ich auf Einzelsystemen mit certbot gearbeitet, was recht gut funktioniert hat. Aber jetzt, wo ich mehrere Server in verschiedenen Umgebungen handhaben muss, wird's etwas komplizierter.

Ein einfaches certbot renew klappt ja nur, wenn alle Server direkt erreichbar sind, was bei mir nicht immer der Fall ist. Ich habe überlegt, DNS-01 Challenges zu nutzen, aber das scheint mir ziemlich aufwendig zu werden.

Hat jemand von euch vielleicht schon mal ein ähnliches Setup umgesetzt? Gibt es Tools oder Scripte, die euch dabei besonders geholfen haben? Ich würde ungern in eine selbstgestrickte Lösung abdriften, die dann schwer wartbar ist.

Freue mich auf eure Tipps und Erfahrungen!

Gruß,
daniel
 
Beste Antwort
Das Problem mit Let's Encrypt über mehrere Server kann echt nerven, vor allem wenn du auf die DNS-01 Challenge starrst und denkst: "Oh Mann, das wird doch alles nur noch komplizierter." Aber es gibt ein paar Wege, das Ganze effizienter zu gestalten, ohne dass du die komplette Infrastruktur über Bord werfen musst.

Ein zentraler Ansatz ist, einen Server als dein Haupt-Acme-Client zu nutzen. Der generiert und erneuert die Zertifikate. Dann verteilst du die Dinger per Skript oder Ansible auf die anderen Kisten. Funktioniert gut, wenn du nicht ständig neue Zertifikate brauchst.

Falls du dich doch mit DNS-01 anfreunden willst, schau dir mal acme.sh an. Der unterstützt eine Menge DNS-Anbieter direkt und das Setup ist weniger schmerzhaft...
Das Problem mit Let's Encrypt über mehrere Server kann echt nerven, vor allem wenn du auf die DNS-01 Challenge starrst und denkst: "Oh Mann, das wird doch alles nur noch komplizierter." Aber es gibt ein paar Wege, das Ganze effizienter zu gestalten, ohne dass du die komplette Infrastruktur über Bord werfen musst.

Ein zentraler Ansatz ist, einen Server als dein Haupt-Acme-Client zu nutzen. Der generiert und erneuert die Zertifikate. Dann verteilst du die Dinger per Skript oder Ansible auf die anderen Kisten. Funktioniert gut, wenn du nicht ständig neue Zertifikate brauchst.

Falls du dich doch mit DNS-01 anfreunden willst, schau dir mal acme.sh an. Der unterstützt eine Menge DNS-Anbieter direkt und das Setup ist weniger schmerzhaft, als es aussieht. Einziger Haken: Du musst halt die API-Zugänge zu deinem DNS-Anbieter sicher handhaben.

Und wenn du's richtig schick machen willst, gibt's auch Tools wie Certbot mit DNS-Plugins oder CertManager für Kubernetes, wenn du in der Richtung unterwegs bist. Im besten Fall sparst du dir damit den ganzen Verteiler-Kram.

Letztlich hängt's davon ab, wie oft sich dein Setup ändert und wie viel Kontrolle du über die einzelnen Server hast. Wenn du's erstmal am Laufen hast, bleibt der Aufwand überschaubar. Viel Glück, und lass dich nicht von den Zertifikaten ärgern.
 
Hey Daniel,

ich fühle deinen Struggle. Hatte selbst mal das Vergnügen, eine ähnliche Aufgabe zu lösen, und ja, das kann schnell zur Geduldsprobe werden. Was bei mir damals geholfen hat, war, einen zentralen Server als eine Art „Master“ für die Zertifikatsverwaltung zu nutzen. Der Trick war, die Zertifikate dort zu erneuern und dann auf die anderen Server zu verteilen.

DNS-01 Challenges sind definitiv eine Option, wenn die Server nicht direkt erreichbar sind. Klar, die Einrichtung kann anfangs etwas frickelig wirken, aber wenn’s einmal läuft, ist es super stabil. Ein paar gute DNS-Provider bieten mittlerweile APIs an, die das Ganze vereinfachen - schau da mal rein, könnte sich lohnen.

Ein weiteres Tool, das mir geholfen hat, war acme.sh. Ist ein Shell-Skript, das Let’s Encrypt-Zertifikate verwalten kann und auch DNS-01 von Haus aus unterstützt. Und das Beste: Es ist leichtgewichtig und ziemlich flexibel. Mit ein bisschen Scripting kannst du die Verteilung der Zertifikate gut automatisieren.

Verstehe den Drang, keine selbstgestrickte Lösung zu bauen - been there, done that, hat später mehr Probleme gemacht als gelöst. Schau dir mal Ansible an, wenn du das nicht eh schon nutzt. Damit kannst du die Verteilung und Erneuerung relativ elegant managen und hast alles zentral an einem Ort im Griff.

Bleib dran, manchmal hilft es einfach, ein bisschen zu experimentieren, was am besten passt. Wenn’s einmal läuft, fragst du dich, warum es vorher so kompliziert aussah.

Viel Erfolg!
 
Ich hab da mal was zusammengeschustert - war nachts um 3, also verzeih, wenn es nicht super elegant ist. Aber es klappt!

Also, bei mir waren auch mehrere Server im Spiel, und ich hab das mit nem zentralen Server gelöst, der für alle anderen die Zertifikate aktualisiert. Ich hab einfach einen der Server als "Zertifizierungs-Manager" genommen - der holt die Zertifikate mit DNS-01 Challenges und verteilt sie dann an die anderen. Ich benutze dazu ein kleines Script, das die Zertifikate via SCP rüberkopiert.

Falls du auf DNS-01 Challenges gehst, check mal, ob dein DNS-Anbieter ne API hat. Viele von denen bieten das, und das macht die Sache echt viel einfacher. Certbot kann mit vielen von denen direkt sprechen, das spart dir ne Menge Kopfzerbrechen.

Falls du doch was Eigenes bauen willst, schau dir mal Certbot Hooks an. Die sind super, um nach der Zertifikatsaktualisierung Scripts zu starten. Damit kannst du dann zum Beispiel die Zertifikate automatisch rüberkopieren.
 
Zurück
Oben