Umwandlung des Lets Encrypt SSL Zertifikats in ein Java KeyStore Format (Machbarkeit)

Norman3l

Benutzer
Mitglied seit
17. Okt 2016
Beiträge
19
Punkte für Reaktionen
0
Punkte
1
Hallo,
ich würde gerne wissen ob das folgende möglich ist:

1. Ich habe über den Docker EcoDMS installiert und den Web Zugang geöffnet.
2. Der Web-Zugang soll analog zu den anderen Synology Paketen über das Lets Encrypt SSL Zertifikat geschützt werden. Der Webaufruf erfolgt über die gleiche in Lets Encrypt registrierte Domain. Lediglich der Port unterscheidet sich zu den anderen mit SSL geschützten Synology-Paketen.
3. In EcoDMS kann ein SSL-Zertifikat in Format JSSE eingetragen werden. Folgende Angaben müssen hierzu eingetragen werden:
a) Schlüsselbund Passwort
b) Eine Datei "Schlüsselbund"
c) Zertifikat Alias (vermutlich ein von mir festzulegender Name?)
4. Von Lets Encrypt habe ich die folgenden Dateien erhalten "chain.pem; privkey.pem; cert.pem"

Frage: Können diese Dateien in das von EcoDMS geforderte Format gebracht werden? Funktioniert dieses Vorgehen überhaupt in dieser Art?

Vielen Dank an die Experten im voraus!
 

Frogman

Benutzer
Mitglied seit
01. Sep 2012
Beiträge
17.485
Punkte für Reaktionen
8
Punkte
414
Der JSSE Keystore definiert das Handling. Auch andere Java-Anwendung wie bspw. Openfire arbeiten auf der Basis.
Hier findet man bspw. Infos, wie man textbasierte Zertifikate in die JSSE-Datenbank importieren kann - für den Fall, dass die Applikation dafür nicht extra einen Menüpunkt vorsieht (wie es bspw. Openfire tut). Eine entsprechende Suche beim Suchdienst Deiner Wahl liefert diverse andere Hinweise und Erklärungen.
 

Norman3l

Benutzer
Mitglied seit
17. Okt 2016
Beiträge
19
Punkte für Reaktionen
0
Punkte
1
Hallo,
ich habe bisher folgendes versucht:

1) Die pem vorhandenen Dateien (chain.pem; privkey.pem; cert.pem) habe ich in eine pkcs12 Datei umgewandelt. Da es lediglich ein Test war und ich hierfür eine einfache Lösung brauche habe ich folgendes online Tool verwendet: https://www.trustico.eu/ssltools/convert/pem-to-pkcs12/convert-pem-to-pkcs12.php.

2) Man erhält mit dem Tool eine Datei mit dem Namen mypfx.pfx. Diese Datei habe ich dann in ecodms hochgeladen und das im Tool von mir angegebene Passwort verwendet.

3) EcoDMS gibt beim speichern der Einstellungen folgende Fehlermeldung aus: keystore password was incorrect

4) Zur weiteren Analyse habe ich die "mypfx.pfx" Datei mit dem Tool portecle geöffnet. Anbei die Infos zu dem Tool: https://www.sslsupportdesk.com/portecle-advanced-keystore-creation-and-manipulation-tool/


5) Da ich die Datei mit portecle und dem in EcoDMS verwendeten Passwort öffnen konnte gehe ich davon aus das sowohl die pfx-Datei als auch das Passwort korrekt sind. Warum EcoDMS eine Fehlermeldung ausgibt kann ich nicht nachvollziehen.

6) Ebenfalls mit portecle wurde versucht: a) ein neues Passwort für das Zertifikat zu erstellen, B) Den Kesystore type zu ändern.


Leider bin ich bisher noch zu keiner Lösung des Problems gekommen. Über weitere Tipps oder Anregungen würde ich mich sehr freuen!
 

Norman3l

Benutzer
Mitglied seit
17. Okt 2016
Beiträge
19
Punkte für Reaktionen
0
Punkte
1
Mittlerweile habe ich das Problem lösen können. Anbei das von mir angewendete Vorgehen. Geholfen hat mir folgende Seite: https://maximilian-boehm.com/hp2121/Create-a-Java-Keystore-JKS-from-Let-s-Encrypt-Certificates.htm

Das bereits vorhandene letsencrypt Zertifikat in das für ecoDMS erforderliche .jks (Java KeyStore) Format konvertieren

Für die Bearbeitung wird openssl und das Keytool benötigt. Anbei die nach der Installation der beiden Programme über die Eingabeauforderung CMD verwendeten Befehle. Details hierzu findest du in den oben von mir angegebenen Link.
1) openssl pkcs12 -export -in chain.pem -in cert.pem -inkey privkey.pem -out pkcs.p12 -name ecoDMS
2) keytool -importkeystore -deststorepass PASSWORT -destkeypass PASSWORT -destkeystore keystore.jks -srckeystore pkcs.p12 -srcstoretype PKCS12 -srcstorepass PASSWORT -alias ecoDMS

Hinweis: PASSWORD-STORE, PASSWORD_KEYPASS und STORE_PASS müssen mit ein und demselben Passwort besetzt sein.
Dieses Passwort wird bereits in Schritt 1 (openssl) vergeben.

Die so erzeugte*.jks Datei kann dann über den Reiter TLS (SSL) im Webclient von ecoDMS eiingespielt werden. Als Name habe ich ecoDMS eingetragen und bei Passwort das oben verwendete.
 
Zuletzt bearbeitet:

schleife12

Benutzer
Mitglied seit
05. Aug 2016
Beiträge
3
Punkte für Reaktionen
0
Punkte
1
Hallo zusammen,
habe die erzeugte *.jks in ecoDMS einlesen wollen...es kommt die Meldung: Fehler "EcoDMSClassifyPlugin.CERTNOTFOUND". Das Zertifikat scheint aber in Ordnung zu sein, was ich in Keystore Explorer versucht habe zu untersuchen. Des weiteren habe ich genau wie Norman3l beschrieben, das vorhandene letsencrypt Zertifikat in Java KeyStore konvertiert. Ergebnis: gleiche Meldung in ecoDMS. Was könnte falsch sein? Eine Lösung bezügl. Zertifikat ist mir wichtig. Bin dankbar für jeden Hinweis dazu.

Norman3l vielen Dank für den Beitrag! Leider komme ich nicht weiter, noch immer von mir genannte Fehlermeldung in ecoDMS.
 
Zuletzt bearbeitet:

inyaff

Benutzer
Mitglied seit
23. Mrz 2018
Beiträge
1
Punkte für Reaktionen
1
Punkte
0
Meine Lösung

Hallo,
ich habe es nach etwas längerem Probieren und Recherche im Netz geschafft, das LetsEncrypt-Zertifikat auch in den Webclient des ecoDMS (16.09-3) auf der Synology Rackstation zum laufen zu bekommen.

Im Einsatz waren DSM 6.1.5 auf einer RS815+.

0. Vorbereitungen

a) Java8 über das Paketzentrum der Rackstation beziehen um zum späteren Zeitpunkt über die Shell den Befehl "keytool" ausführen zu können.
b) Java auf den neuesten Stand bringen: Hierzu wie beschrieben unter "Java8" -> "Java aktualisieren" das neueste Java SE Development Kit Release herunterladen und das Paket installieren.
c) SSH im DSM aktivieren.​

1. SSH-Sitzung zur DSM aufbauen

a) Man melde sich per lokalem Admin-Benutzerkonto der DSM in der Shell in der Disk-/Rackstaion an (ich als Windows-Nutzer habe PuTTY genutzt)
b) wechsle dann per
Rich (BBCode):
sudo -i
zum Root-User, wobei das Passwort das selbe ist wie vom verwendeten Admin-User, mit dem man sich zu Anfang eingeloggt hat.
c) und navigiere ins entsprechende, etwas kryptisch benannte Unterverzeichnis des gewünschten Zertifikates, unter
Rich (BBCode):
/usr/syno/etc/certificate/_archive/

2. .pem-Dateien zusammenlegen

a) ich habe die Zertifikate und den privaten Schlüssel zusammengelegt in eine neue .pem-Datei, weil der weiter oben genannte Weg auch bei mir nicht den Erfolg gebracht hat (Stichwort: "EcoDMSClassifyPlugin.CERTNOTFOUND")
Rich (BBCode):
cat fullchain.pem privkey.pem > all.pem
b) Anschließend die Zertifikatsdateien mit openssl, was standardmäßig im DSM vorhanden ist, umgewandelt:
Rich (BBCode):
openssl pkcs12 -export -in all.pem -out ecodms.p12 -name ecodms
Hierbei MUSS ein Passwort vergeben werden, was fortan überall unter "3." bei "PASS_WORD" einzutippen und zwingend wiederzuverwenden ist.

c) die Datei all.pem wird nicht weiter benötigt und kann mit folgendem Code vernichtet werden.
Rich (BBCode):
shred -v -n 5 -z -u all.pem
3. Java KeyStore (.jks) erstellen

a) mit dem folgenden Befehl wird der für ecoDMS benötigte KeyStore aus der unter 2.b) erstellen ecodms.p12 zusammengebaut:
Rich (BBCode):
keytool -importkeystore -deststorepass PASS_WORD -destkeypass PASS_WORD -destkeystore ecodms.jks -srckeystore ecodms.p12 -srcstoretype PKCS12 -srcstorepass PASS_WORD -alias ecoDMS
b) optional(!) kann man sich sein Werk anschauen:
Rich (BBCode):
keytool -list -v -keystore ecodms.jks
c) Spuren beseitigen:
Rich (BBCode):
shred -v -n 5 -z -u ecodms.p12
c) anschließend noch die Java-KeyStore-Datei dorthin verschieben, wo man sie auch "bequem" über z.B. die FileStation herunterladen kann um Sie in den Einstellungen des ecoDMS-Clients wieder hochzuladen.

Rich (BBCode):
mf -v ecodms.jks /[VOLUME_NAME]/homes/admin/ecodms.jks
und Shell-Sitzung beenden.​

4. KeyStore ins ecoDMS einbinden

a) mit den benötigten Berechtigungen des ecoDMS-Rollensystems (ich habe den Admin verwendet) eine Verbindung zum ecoDMS-Client aufbauen und den Webdienst stoppen. (machte bei mir sonst Probleme)
b) im entsprechenden Reiter TLS aktivieren und auf "eigenen Schlüsselbund verwenden" umschalten, dann einen frei wählbaren Zertifikats Alias wählen.
c) Das Schlüsselbund Passwort eintippen (siehe PASS_WORD) aus Punk 2. und 3.
d) die Datei ecodms.jks über den Dateiexplorer von der Festplatte, oder von woher auch immer auswählen.
e) unten rechts im Fenster auf "Speichern" drücken.
f) Webclient wieder starten, was etwas dauern kann.​

final.jpg
Fertig.
 
  • Love
Reaktionen: Norman3l

ac-ludwig

Benutzer
Mitglied seit
17. Dez 2017
Beiträge
20
Punkte für Reaktionen
0
Punkte
1
Super, sehr interessante Anleitung.

Aber wie verhält sich das, wenn das umgewandelte LetsEncrypt-Zertifikat seine Gültigkeit nach 90 Tagen verliert?
Aktuell gehe ich mal davon aus, daß der Aufwand somit regelmäßig neu anfällt.

Kennt jemand eine Alternative ohne nervigen Aufwand?
 

Tuxnet

Benutzer
Mitglied seit
02. Jan 2019
Beiträge
579
Punkte für Reaktionen
66
Punkte
48
re :

schleife12


Ich stehe gerade vor dem selben Problem,
hast du eine Lösung finden können ?
 

WoodenDuke

Benutzer
Mitglied seit
25. Mrz 2016
Beiträge
1
Punkte für Reaktionen
0
Punkte
1
Super, sehr interessante Anleitung.

Aber wie verhält sich das, wenn das umgewandelte LetsEncrypt-Zertifikat seine Gültigkeit nach 90 Tagen verliert?
Aktuell gehe ich mal davon aus, daß der Aufwand somit regelmäßig neu anfällt.

Kennt jemand eine Alternative ohne nervigen Aufwand?
Hallo zusammen,
der Thread ist schon älter, aber...

....hat dazu jemand eine praktikable Lösung gefunden?
Den Aufwand alle 90 Tage würde ich gern vermeiden...
 


 

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