LE Zertifikat erneuern - prüfen ob notwendig

Ghost108

Benutzer
Mitglied seit
27. Jun 2015
Beiträge
1.263
Punkte für Reaktionen
71
Punkte
68
Hallo!

ich habe eine Aufgabe im Aufgabenplaner angelegt, welche täglich ausgeführt wird:

### 1 ### set firewall profile
synofirewall --profile-set RenewCertificate
synofirewall --reload

### 2 ### enable port fritzbox
[der link zu meiner php Datei, welche via Fritzbox API den Port öffnet]

sleep 10

### 3 ### renew LE certificate, if it expired
/usr/syno/sbin/syno-letsencrypt renew-all -v

sleep 30

### 4 ### disable port Fritzbox
[der link zu meiner php Datei, welche via Fritzbox API den Port schließt]

### 5 ### set firewall profile
synofirewall --profile-set Regelwerk
synofirewall --reload

Kurz zur Erklärung:
1. Stelle das Firewall Profil ein, welche die Ports für die LE Verlängerung offen hat
2. Öffne Port auf Fritzbox
3. Verlänger das Zertifikat
4. Schließe Port auf Fritzbox
5. Stelle das Firewall Profil ein, welche die Ports für die LE Verlängerung zu hat

Gerne würde ich auf die Schritte 1,2,4,5 verzichten, wenn es nicht notwendig ist.
Sprich:

Ich brauche einen Befehl, der erst mal prüft, ist das LE Zertifikat abgelaufen
-> Wenn nein, mache nix
-> Wenn ja, dann kommen meine Schritte 1-5


Gibt es ein Befehl, wo ich diese Überprüfung staffinden lassen kann?
 

EDvonSchleck

Gesperrt
Mitglied seit
06. Mrz 2018
Beiträge
4.703
Punkte für Reaktionen
1.120
Punkte
214
Warum nimmst du nicht acme.sh und sparst dir die ganze Portgeschichte nicht komplett? Außerdem kannst du auch gleich ein Wildcardzertifikat erstellen.
 

EDvonSchleck

Gesperrt
Mitglied seit
06. Mrz 2018
Beiträge
4.703
Punkte für Reaktionen
1.120
Punkte
214
Läuft in Docker, erstellt ein Zertifikat ohne Ports über die API, aktualisiert nach 60 Tagen automatisch.
Welchem Domainanbieter nutzt du denn?
 

EDvonSchleck

Gesperrt
Mitglied seit
06. Mrz 2018
Beiträge
4.703
Punkte für Reaktionen
1.120
Punkte
214
Strato wird nativ nicht von acme.sh unterstützt, das ist aber auch kein Problem.
Du verwendest einen Bypass mittels Alias. Das ist nicht sonderlich schwer. Du benötigst nur einen Anbieter, der acme.sh unterstützt. Einen guten, schnellen, kostenlosen und datenschutzfreundlichen Anbieter und aus Deutschland ist dynv6.

Du meldest du dort nur mit deiner E-Mail (mehr wird nicht benötigt) an, unbestätigt den Account. Danach erstellst du eine DynDNS. Ein Abgleichen mit der Router-IP ist nicht notwendig. Unter Records erstellst du einen Eintrag (A oder AAAA) _acme-challenge. Auch der Eintrag DATA ist nicht notwendig, kann aber zum Überprüfen gesetzt werden.

Das sollte so aussehen:
1675779480977.png

1675779647200.png

Anschließend erstellst du bei deiner Domain (Strato) einen CNAME: _acme-challenge auf deine _acme-challenge.dynv6.adresse. Den Rest kannst du hier ab Punkt 5 nachlesen.

Lediglich der 2. Befehl für die Beantragung des Zertifikates muss so aussehen:
Code:
acme.sh --issue -d deinedomain.de -d *.deinedomain.de --challenge-alias deinedynv6domain.de --dns dns_dynv6 --dnssleep 300
 

Ghost108

Benutzer
Mitglied seit
27. Jun 2015
Beiträge
1.263
Punkte für Reaktionen
71
Punkte
68
okay, behalte ich schon mal als alternative Lösung im Hinterkopf - danke schon mal dafür!
Frage dennoch: Gibt es eienn Synology CLI Befehl, womit ich prüfen kann, ob ein LE Zertifikat abgelaufen ist?
Wenn ja, könnte ich es komplett mit Boardmitteln erledigen.
 

EDvonSchleck

Gesperrt
Mitglied seit
06. Mrz 2018
Beiträge
4.703
Punkte für Reaktionen
1.120
Punkte
214
Warum etwas nachbasteln, was es schon gibt? Das mit deinem Scripten ist doch ehrlich gesagt immer ein Teil deines Problems. So auch in den andren Thread mit der Fritz!Box. Irgendwie kommst du jeden Tag auf eine neue Idee.

Selbst acme erneuert das Zertifikat alle 60 Tage. Und wenn es nicht funktioniert täglich bis zu Tag 90, wo das Zertifikat abläuft. Bis dahin wird es aber funktioniert haben.

Mach doch nicht immer alles komplizierter als es ist!
 

ctrlaltdelete

Benutzer
Contributor
Sehr erfahren
Maintainer
Mitglied seit
30. Dez 2012
Beiträge
14.048
Punkte für Reaktionen
6.059
Punkte
569
Läuft super
 

Ghost108

Benutzer
Mitglied seit
27. Jun 2015
Beiträge
1.263
Punkte für Reaktionen
71
Punkte
68
Danke, habe mich zwischenzeitlich an den Support gewendet und warte hier auf eine offizielle CLI Lösung.
 

Ghost108

Benutzer
Mitglied seit
27. Jun 2015
Beiträge
1.263
Punkte für Reaktionen
71
Punkte
68
Update: Habe eine Antwort vom Synology Support erhalten. Mit dem openssl command kann man prüfen, ob Zertifikate abgelaufen sind.
Das war die Lösung für meine Situation :)
 

Thonav

Benutzer
Sehr erfahren
Mitglied seit
16. Feb 2014
Beiträge
7.896
Punkte für Reaktionen
1.517
Punkte
274
@Ghost108 Dann wirst Du doch sicherlich Dein neuerlangtes Wissen gerne hier weitergeben und den Command verraten, oder? :)
 
  • Like
Reaktionen: *kw*

Ghost108

Benutzer
Mitglied seit
27. Jun 2015
Beiträge
1.263
Punkte für Reaktionen
71
Punkte
68
### Zertifikate abgelaufen?
if openssl x509 -checkend 0 -noout -in /usr/syno/etc/certificate/_archive/XXX/cert.pem
then
exit
else
# Hier der Part, was gemacht werden soll, wenn das Zertifikat abgelaufen ist
fi

XXX = Ordner des Zertifikats.
Einfach via Shell schauen, wie der Ordner bei euch heißt.
 
  • Like
Reaktionen: Thonav


 

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