135624
Goto Top

Lets Encrypt in eigener Umgebung nutzen

Hallöchen zusammen,

habt ihr ein paar Seiten, die die Anwendung von Lets Encrypt gut beschreiben? Ich möchte in der kompletten Umgebung (Linux und Windows-Server) auf Lets Encrypt setzen. Ich hab schon ein bisschen Erfahrung bei einigen Hostern gesammelt, weshalb ich auch weiß, dass es keine Wildcards gibt und auch das ich die Zertifikate alle 90 Tage verlängern und austauschen muss. Ich denke, dass ich da mit PowerShell etc. auch einen Automatismus hinbekomme.

Grundlage soll eine Linux-VM sein, die sich um alles rund um die Zertifikate kümmert.

Gerne ein paar Gedanken und Lösungen, die ihr schon implementiert habt.

Danke face-smile
VG
Green

Content-Key: 388067

Url: https://administrator.de/contentid/388067

Printed on: April 20, 2024 at 04:04 o'clock

Mitglied: 129580
129580 Sep 29, 2018 updated at 12:42:28 (UTC)
Goto Top
Hi,

dass es keine Wildcards gibt

War früher mal so. Inzwischen sind Wildcard Zertifikate möglich.

habt ihr ein paar Seiten, die die Anwendung von Lets Encrypt gut beschreiben?

Gibt tausende Tools und Step by Step Tutorials wie man das einrichtet. Am einfachsten ist es, wenn du Certbot verwendest. Dieser führt nicht nur die Registration des Zertifikats durch, sondern kann auch für verschiedene Dienste z.B. Webserver (Apache, Nginx, lighttpd...) die vhosts für SSL anpassen. Soweit ich das noch richtig in Erinnerung habe, richtet dieser auch automatisch einen Cronjob ein, sodass rechtzeitig ein neues SSL Zertifikat generiert wird.

Wenn du exakt wissen willst, wie Lets Encrypt funktioniert und wie man das einrichtet, dann ist die Herstellerdokumentation immer die beste Quelle: https://letsencrypt.org/docs/

Ansonsten gibt es im Netz tausende von Step by Step Tutorials. Hier mal ein paar genannt:

https://www.digitalocean.com/community/tutorials/an-introduction-to-let- ...
https://blog.codeship.com/how-to-deploy-wildcard-ssl-certificates-using- ...
https://blog.v-gar.de/2018/03/how-to-create-wildcard-certificates-with-l ...
https://blogs.msdn.microsoft.com/mihansen/2018/03/15/creating-wildcard-s ...

P.S: Gibt auch Lets Encrypt Clients für Windows. D.h. du kannst die SSL Zertifikate auch dort automatisch generieren lassen. Dann musst du diese nicht umständlich von der Linux VM auf die Windows Kisten übertragen.

https://letsencrypt.org/docs/client-options/

Viele Grüße,
Exception
Member: wiesi200
wiesi200 Sep 29, 2018 at 13:04:36 (UTC)
Goto Top
Hier ist auch schon von @129580 der Knackpunkt der Grundidee angesprochen worden. Normal kümmert sich jeder Client selber drum und besorgt sich automatisch selber das benötigte Certifikat.

Es wird nicht von einem Server gemacht der das verteilt. Wildcard Certifikate gibt’s zwar, aber ob man‘s braucht.

Problematisch könnt‘s dann vielleicht bei Loadbalancing werden.
Member: LordGurke
LordGurke Sep 29, 2018 at 13:47:02 (UTC)
Goto Top
Ich habe auch nur ein zentrales System, was für mich die Zertifikatverwaltung macht - aus unterschiedlichen Gründen.
Das Teil prüft einmal wöchentlich, ob Zertifikate erneuert werden müssen und führt das dann entsprechend automatisch aus. Die Verifikation erfolgt dabei per DNS. Die Challenges kann mein System per HTTP-API an den PowerDNS-Server geben, der das dann in der entsprechenden Zone veröffentlicht und die Slaves triggert, das sofort zu übernehmen.

Die dabei erstellten Zertifikate werden in ein Verzeichnis auf diesem System kopiert und können von dort per HTTP abgerufen werden.
Die Betonung liegt dabei auf Zertifikate - die Private Keys lasse ich nicht automatisch austauschen und kopiere die einmalig manuell auf neu angeschlossenen Systeme. Bei den Zertifikaten und Chainfiles ist es egal, die sind ja eh öffentlich.

Einmal wöchentlich, aber einen Tag später als mein Certbot-System, rufen die angeschlossenen Server per Script die Zertifikatsdateien ab, installieren diese und laden die verknüpften Dienste neu. Das sind bei mir Webserver, Mailserver und Jabber.

Funktioniert seit über einem Jahr ganz wunderbar face-smile


(Für interessierte Nerds)
Momentan teste ich meine neue HTTPS-API, wo der Client-Server sich mit seinem aktuellen Private Key authentifziert (TLS Client Auth) und damit seinen neuen Private Key abrufen kann. Dann kann ich auch den Key-Rollover automatisieren und sogar - getriggert durch das Abrufen des Keys - automatisch neue TLSA-Records veröffentlichen face-smile
Member: Henere
Henere Sep 30, 2018 at 13:58:12 (UTC)
Goto Top
Servus,

ich nutze nur getssl auf meinem Server. Was mich an den ganzen Automatismen stört, wenn der kein neues Zertifikat abholen kann, er danach trotzdem den Apache reloaded und der dann auf die Nase fälllt.
Gleiches gilt für Postfix.

Grüße, Henere
Mitglied: 129580
129580 Sep 30, 2018 updated at 14:12:26 (UTC)
Goto Top
Hi,

Was mich an den ganzen Automatismen stört, wenn der kein neues Zertifikat abholen kann, er danach trotzdem den Apache reloaded und der dann auf die Nase fälllt.

Warum sollte dein Apache auf die Nase fallen? Wenn der Lets Encrypt Client kein Zertifikat beziehen kann, dann ist immer noch das alte Zertifikat vorhanden. Dann kann es nur unter Umständen sein, dass die Besucher bei deiner Website aufgrund des abgelaufenen Zertifikats eine Zertifikatswarnung erhalten. In solch einem Fall könnte man eine Notification an den zuständigen Admin einrichten mitsamt Logs, damit dieser sich darum kümmert. Und der Renew bzw. der Cronjob dazu sollte man mindestens ein paar Tage (am besten mindestens eine Woche) vor dem Ablauf des Zertifikates durchführen, damit ein Admin auf solche Fehler reagieren kann.

Außerdem Reload != Restart. Bei einem Reload führt der Apache erstmals ein Config Test durch. Schlägt dies fehl, weil ein Zertifikat nicht vorhanden ist, obwohl ein Zertifikat im vhost angegeben wurde, dann führt er keinen Reload durch. Bei einem Restart würde der Dienst sofort neugestartet werden - ohne Test. Wenn er dann beim Hochfahren des Dienstes diesen Fehler feststellt, dann würde der Apache Prozess nicht mehr hochkommen. Deshalb sollte man generell nach Konfigurationsänderungen immer den Reload Befehl verwenden - niemals Restart face-wink

Viele Grüße,
Exception
Member: Henere
Henere Sep 30, 2018 at 14:11:32 (UTC)
Goto Top
Moin, bekomme es nicht mehr ganz zusammen. Ich versuche es mal:

GetSSL hat das Zertifikat verschoben um dann das Neue zu holen. Wenn das nicht geklappt hat, war das alte aber nicht mehr an der gewohnten Stelle (working). Dann kam der Restart für den Apachen.
Das war eine uralte getssl Version, die ich mit Helfe eines Programmieres dann entsprechend angepasst hatte.
Läuft bis heute einwandfrei.
Hab nicht geschaut, ob die neuen Versionen, gerade der CertBot, es anders machen. Ich hatte mich eben nur daran erinnert, was damals bei den Tests schief gelaufen ist.

Henere
Mitglied: 135624
135624 Oct 21, 2018 at 12:52:24 (UTC)
Goto Top
Hallöchen,

so ich bin jetzt bissle weiter. Ich habe jetzt eine eigene CA auf Basis von Debian 9 und OpenSSL für das restliche Netzwerk erstellt. Das heißt ich kann dann wirklich nur für den Web-Server Lets Encyrpt verwenden. Die Zertifikate der internen CA laufen eh erst in 20 Jahren ab (bis dahin hat man so eine Umgebung eh neu aufgebaut :D ).

Ich schau mir das mit Let's Enctypt dann mal auf dem Webserver an.

Danke für Eure Kommentare!


VG
Green14