Vorhandenes LE-Zertifikat verwenden

tag

Benutzer
Mitglied seit
18. Jan 2021
Beiträge
32
Punkte für Reaktionen
2
Punkte
8
Hallo, ich habe eine Domain, für die ein vServer ein Wildcard-LE-Zertifikat holt und bei Erneuerung an viele Stellen deployt. Dies sollte er auch auf meine Synology tun, so dass die Web Station es für bestimmte Seiten verwendet.

Wo/wie muss es denn hin deployt werden bzw. wie ist denn da die Vorgehensweise, wenn das Zertifikat nicht von der Synology (DS218 DSM 7.2.1-69057 Update 5) selbst geholt wird, sondern regelmäßig per Skript ausgetauscht werden muss?
 

plang.pl

Benutzer
Contributor
Sehr erfahren
Mitglied seit
28. Okt 2020
Beiträge
15.028
Punkte für Reaktionen
5.401
Punkte
564
Wer holt das Script? Wenn der Anbieter acme.sh unterstützt, kannst du das automatisiert auf der DS per Docker Container oder Script erneuern und deployen lassen. Wenn du dir die acme Doku auf GitHub anschaust, findest du vielleicht auch selbst raus, wie du ein eigenes Cert per DSM API deployen kannst.
 

*kw*

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
10. Aug 2013
Beiträge
2.842
Punkte für Reaktionen
1.379
Punkte
174
  • Like
Reaktionen: tag

tag

Benutzer
Mitglied seit
18. Jan 2021
Beiträge
32
Punkte für Reaktionen
2
Punkte
8
Ich verstehe die Frage nicht. Welches Script soll wo geholt werden?

Ein Wildcard-Zertifikat wird geholt, indem certbot ein authenticator.sh und cleanup.sh aufruft, das ich ihm für die Domain(s) gegeben habe. Dann hat mein vServer im Internet (Ubuntu) das Zertifikat (bei Erneuerung) frisch da, und muss das im Deploy-Hook irgendwohin auf die Synology in meinem Intranet schieben. Den Zugriff per ssh/scp bekomme ich hin, ich muss nur wissen, wohin das erneuerte Zertifikat kopiert werden muss und wem ich ein Event geben/ein Script aufrufen muss, damit es neu eingelesen wird, statt das alte zu verwenden.

Das ganze könnte theoretisch sogar direkt auf der Synology laufen und dann auf meinen vServer deployen, aber ich wüsste nicht, warum das einfacher, besser oder zuverlässiger sein sollte (bezweifle ich eher).

Du meinst, ich soll ein acme-passenden Server implementieren, damit die Synology glaubt, ich würde einen Zertifikatsserver spielen, und dann den Request ignorieren, damit ich ihr ein Wildcard-Zertifikat unterjubeln kann? Das klingt äußerst umständlich. Und wie sage ich dann der Synology, dass es Zeit wäre, den Aufruf zu machen?

Edit:
@*kw* Das sieht gut aus! Deploy auf Synology Absatz 20 scheint zu passen. Schau ich mir demnächst mal in Ruhe an.
 
  • Like
Reaktionen: *kw*

Ronny1978

Benutzer
Sehr erfahren
Mitglied seit
09. Mai 2019
Beiträge
1.842
Punkte für Reaktionen
756
Punkte
128
Wenn es jemand schafft, ein Lets Encrypt Zertifikat, welche in einer OpnSense per ACME Client generiert wird, per Automation auf die Synology "zu schieben", gerne mal melden. Mit der OpnSense Version 24.1.7 bekomme ich eine Fehlermeldung bzw. sogar "Crash" in der OpnSense. 👍
 

plang.pl

Benutzer
Contributor
Sehr erfahren
Mitglied seit
28. Okt 2020
Beiträge
15.028
Punkte für Reaktionen
5.401
Punkte
564
ich soll ein acme-passenden Server implementieren, damit die Synology glaubt, ich würde einen Zertifikatsserver spielen
Nein. Ich hab nur gefragt, ob du vielleicht bereits so einen Dienst HAST, der acme kompatibel ist.
dass es Zeit wäre, den Aufruf zu machen?
Das merkt die schon von selbst.
Hatte ich ja oben auch geschrieben, dass in der acme Doku der Deploy Hook zu finden ist.
Lets Encrypt Zertifikat, welche in einer OpnSense per ACME Client generiert wird, per Automation auf die Synology "zu schieben",
Wenn man den genannten Deploy Hook nutzt, dann kann man das vielleicht hinbekommen. Wenn nicht einfach auf der DS auch noch acme aufsetzen. Bei mir wird das Wildcard-Cert per acme vom Proxmox-Host, der DS und dem Reverse Proxy geholt (letzterer allerdings mit CertBot).
 
  • Like
Reaktionen: Ronny1978 und tag

Ronny1978

Benutzer
Sehr erfahren
Mitglied seit
09. Mai 2019
Beiträge
1.842
Punkte für Reaktionen
756
Punkte
128
Wie gesagt: In der OpnSense beim ACME Plugin gibt es Automationen. Aber so richtig, habe ich mich damit noch nicht beschäftigt. Ich würde halt gern in der OpnSense die Zertifikate steuern (inkl. Erneuerung) und dann auf die jeweiligen HOSTs "schieben", wie zum Beispiel DSM, Proxmox, usw.
 

tag

Benutzer
Mitglied seit
18. Jan 2021
Beiträge
32
Punkte für Reaktionen
2
Punkte
8
OK, ein acme kompatibler Dienst klingt wie etwas, das für diesen Zweck passend wäre. Was wäre denn ein acme-kompatibler Dienst, gibt es da etwas fertiges für Ubuntu?

Au mann, jetzt lässt das Forum kein .tar.xz als Endung beim Hochladen zu. Na gut, dann zip. Ich zeige mal, wie ich das per API bei hosting.de hole. Ist aber unspektakulär, denke ich. certbot muss installiert sein. Domain bei hosting.de reservieren. Einmalig wildcard_get.sh (domainname) aufrufen, und das Zertifikat funktioniert dauerhaft.

Ist die Frage, wie ich das ersetze durch etwas, das mir eigenständig das wildcard-Zertifikat holt und ein acme-kompatibler Dienst ist. Aber als ich das eingerichtet habe, habe ich da überhaupt nichts gefunden.

Alternative wäre sowas wie beispielsweise ein git-Repository, in das man das aktuelle Zertifikat pusht. Alle Server/Dienste, die das Wildard-Zertifikat benutzen sollen, machen git pull und wenn sich was geändert hat, ein Reload auf alle Dienste, die das Zertifikat benutzen.

Wobei, das kann mir durchaus helfen. Ich habe das Problem mit DANE, dass das Zertifikat nicht sofort deployt werden soll, sondern erst nach der TTL des MX-Eintrags im DNS. Das kann LE derzeit nicht implementieren, deshalb wird da wild getrickst. Ich behelfe mir bisher, indem der renewal-hook post für MX-relevante Dienste beispielsweise so aussieht:

prompt# cat 00_reload_postfix.sh
#!/bin/bash
echo "systemctl reload postfix"| at now+1day

Das hilft aber nicht, wenn der Server oder Dienst aus einem anderen Grund neu startet. Dann ist ggf mein Mailempfang kaputt bis die TTL um ist. Lasse ich das die Synology machen und deploy das neue Zertifikat erst nach der TTL (oder ein Tag später, das tut auch), dann habe ich diese Sicherheit gewonnen.

@Ronny1978 Wenn ich eine Lösung habe, kann das dir auch helfen. Die Situation ist vergleichbar. Aber erst mal will ich wissen, was die sinnvolle Herangehensweise ist.
 

Anhänge

  • 20240601_wildcard_get.zip
    1,6 KB · Aufrufe: 0

plang.pl

Benutzer
Contributor
Sehr erfahren
Mitglied seit
28. Okt 2020
Beiträge
15.028
Punkte für Reaktionen
5.401
Punkte
564
Das verstehst du falsch. Dein Anbieter des Zertifikats muss acme.sh unterstützen. Und laut dieser Liste tut er das wohl. Das heißt, du könntest das Zertifikat über einen Docker-Container holen und auf den Hosts deployen. Die scriptbasierte Variante ist natürlich auch möglich.
Folgendes sei nochmal gesagt: Es können ruhig mehrere Dienste das Cert abholen. Wie gesagt, bei mir holen 2 Hosts (DS + Proxmox) das Zertifikat per acme ab und der Reverse Proxy holt mehrere Wildcard-Certs für Subdomains via CertBot.
 
  • Like
Reaktionen: tag

Ronny1978

Benutzer
Sehr erfahren
Mitglied seit
09. Mai 2019
Beiträge
1.842
Punkte für Reaktionen
756
Punkte
128
Folgendes sei nochmal gesagt: Es können ruhig mehrere Dienste das Cert abholen. Wie gesagt, bei mir holen 2 Hosts (DS + Proxmox) das Zertifikat per acme ab und der Reverse Proxy holt mehrere Wildcard-Certs für Subdomains via CertBot.
Hallo @plang.pl , danke für die Info. Im Grunde ist das klar. Aber wenn auf dem Router, bei mir die OpnSense, ein Reverse Proxy sitzt UND ICH DIENSTE von außen erreichen möchte - ob sinnvoll oder nicht erst einmal dahingestellt - dann wäre es halt schön, ich könnte die Zertifikate, welche ich in der OpnSense erzeuge auf die Hosts weiterleiten. ;)

Ist sicherlich nicht zwingend, aber wäre halt cool. Ich scheitere leider noch daran.
 

plang.pl

Benutzer
Contributor
Sehr erfahren
Mitglied seit
28. Okt 2020
Beiträge
15.028
Punkte für Reaktionen
5.401
Punkte
564
Ja, da verstehe ich dich schon. Ich würde mir das auch so wünschen, wenn ich du wäre. Bei mir sind die Dienste nur intern erreichbar. Gewisse Dienste laufen da nicht über den Reverse Proxy (wegen Performance: DS und Proxmox hat 2,5GbE und der RP selbst nur Gigabit). Wenn man etwas bastelt, bekommt man den Deploy von der Opnsense auch hin, denke ich. Ich habe aber (noch) keine im Einsatz, deswegen kann ich da nicht viel zu sagen.
 

tag

Benutzer
Mitglied seit
18. Jan 2021
Beiträge
32
Punkte für Reaktionen
2
Punkte
8
Kleine Korrektur: Es ist nicht der Anbieter des Zertifikats, der acme unterstützen muss (das ist letsencrypt), sondern der Provider für das DNS (in meinem Fall hosting.de).

Danke für die Info, das war mir nicht bewusst, dass das einfacher/eleganter ginge als meine Lösung. Auf der Synology ein zusätzliches wildcard-Zertifikat zu holen kann ein eleganter Weg für mich sein. Für Zuhause will ich eigentlich nur ein Wildcard-Zertifikat für eine Subdomain, die ich zuhause für die Rechner verwenden will (damit ich nicht self-sign *.fritz.box überall verwenden muss, sondern was offizielles habe, und nicht meine eigene CA überall importieren muss). Nur für DANE und den Delay für das Aktivieren der Zertifikate um TTL des MX-Eintrags im DNS habe ich damit noch keine echte Lösung.
 

Ronny1978

Benutzer
Sehr erfahren
Mitglied seit
09. Mai 2019
Beiträge
1.842
Punkte für Reaktionen
756
Punkte
128
Dienste laufen da nicht über den Reverse Proxy (wegen Performance: DS und Proxmox hat 2,5GbE und der RP selbst nur Gigabit)
Gänge ja dann auch für die internen Dienste. Das ACME Plugin könnte die Zertifikate in der OpnSense generieren und dann per Automation aus die Hosts "schieben". UNABHÄNGIG vom RP. Ich habe den Entwickler des ACME Plugin schon auf Github angeschrieben, Mal sehen....
 

plang.pl

Benutzer
Contributor
Sehr erfahren
Mitglied seit
28. Okt 2020
Beiträge
15.028
Punkte für Reaktionen
5.401
Punkte
564
sondern der Provider für das DNS
Ja mein ich doch😇

sondern was offizielles habe
Genau deshalb mach ich das auch. Ich möchte intern ssl haben und mich nicht mehr mit Cert-Fehlern rumschlagen.

@Ronny1978 klar, ginge intern auch. Ich fände es auch cool, wenn ich das Zertifikat vom Reverse Proxy zentral holen lassen kann und auf die Hosts deploye. Ich habe mich damit auch schon ein paar Nächte rumgeschlagen, aber es geht einfach nicht (nginx RP in Docker). Ich hatte versucht, die Certs per acme.sh via Docker in der VM zu holen, wo auch der nginx läuft. Das war an sich kein Problem, nur das "pushen" der Certs in den nginx hat nie funktioniert, weil nicht vorgesehen.
 

Ronny1978

Benutzer
Sehr erfahren
Mitglied seit
09. Mai 2019
Beiträge
1.842
Punkte für Reaktionen
756
Punkte
128
Ich fände es auch cool, wenn ich das Zertifikat vom Reverse Proxy zentral holen lassen kann und auf die Hosts deploye
Ist nicht mal der RP, sondern der ACME Client/das ACME Plugin auf der OpnSense ;-) Somit auch kein Stress mit dem RP oder NUR INTERNEN Diensten.
 

tag

Benutzer
Mitglied seit
18. Jan 2021
Beiträge
32
Punkte für Reaktionen
2
Punkte
8
Also dieses Deploy auf Synology sieht umständlich aus. Auch ist wegen einem Zertifikat-Update kein Restart notwendig, der meines Wissens jeden Download und jede Verbindung unterbricht, ein Graceful Reload (ggf KILL -SIGHUP iirc, oder systemctl reload, oder httpd reload oder so) reicht bei Apache und Nginx doch aus?!? Kann natürlich sein, dass das Synology-API-html-Restart intern einen Reload macht, aber dann gehört jemand wegen dem Namen geschlagen. Etwas, das Restart heißt, sollte auch Restart machen. Und der ist meines Wissens unnötig und ggf. schädlich.

Ich kann ssh auf die Kiste machen per Authorized Keys, da mache ich doch nicht mit Passwörtern in Environment-Variablen rum und temporärem Admin, dessen Passwort irgendwo in der Konfig gespeichert wird, um die API nutzen zu können! Oder gibt es dafür einen Grund, den ich nicht kenne?
 

*kw*

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
10. Aug 2013
Beiträge
2.842
Punkte für Reaktionen
1.379
Punkte
174
@tag: vollständigkeitshalber, DNS Api Anbieterübersicht Teil1 und Teil2
 
  • Like
Reaktionen: tag

Ronny1978

Benutzer
Sehr erfahren
Mitglied seit
09. Mai 2019
Beiträge
1.842
Punkte für Reaktionen
756
Punkte
128
Also dieses Deploy auf Synology sieht umständlich aus
Ging das an mich? Auf der OpnSense sieht es in der GUI recht übersichtlich aus. Es müsste halt nur funktionieren ;-)
 


 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat