Hintergrund
If you run Simplifier Instances using self signed certificates, or certificates issued by a Certification Authority which is not part of the usual trusted ones, you will get an error when you try to transport a package from one environment to another.
For connectors, there is a certificate management implemented in the user interface. You can use this to upload certificates of REST, SOAP or OData V2 services you want to connect to using Simplifier connectors.
These certificates cannot be used for the transport system. To make the transport system work with certificates of a custom CA, you need to manually import the necessary certificates in a so-called trust store. This needs to be done on the server CLI, as described in this article.
Überblick
Die folgenden Schritte müssen durchgeführt werden:
- Set up custom trust store on permanent storage
- Import neccessary certificates (root and intermediates)
- Change JVM arguments to use custom trust store
- Restart Simplifier
1. Benutzerdefinierten Truststore auf permanentem Speicher einrichten
Grundlage für den benutzerdefinierten Truststore ist der Standard-Truststore, der bereits eine breite Palette vertrauenswürdiger Zertifizierungsstellen enthält.
Melde dich am Terminal des Hosts an, auf dem Simplifier ausgeführt wird. Finde den Containernamen der Simplifier-Instanz heraus, die du ändern möchtest. Es muss ein Container sein, der auf dem Image simplifierag/simplifier basiert.
Öffnen Sie ein interaktives Terminal innerhalb des Containers:
docker exec -it simplifier /bin/bash
Alle folgenden Befehle müssen innerhalb dieses Containers ausgeführt werden, nicht auf dem Host.
Erstellen wir einen neuen Ordner für den Truststore:
mkdir /opt/simplifier/data/conf/certs
Kopieren Sie den Standard-Truststore in den neu erstellten Ordner.
Für Simplifier 8:
cp /usr/lib/jvm/temurin-8-jdk-amd64/jre/lib/security/cacerts /opt/simplifier/data/conf/certs
Für Simplifier 8 EHP 1 oder neuer:
cp /usr/lib/jvm/graalvm-community-openjdk-20.0.1+9.1/lib/security/cacerts /opt/simplifier/data/conf/certs
2. Notwendige Zertifikate importieren
Zuerst müssen die Zertifikate auf den Host kopiert werden. Bitte verwenden Sie scp, FileZilla oder ein beliebiges Tool Ihrer Wahl, um sich mit dem Host zu verbinden, auf dem Simplifier ausgeführt wird, und kopieren Sie die Zertifikate dorthin, z. B. in den Ordner /home/myUser (bitte passen Sie diesen Pfad an Ihre Umgebung an). Bitte beachten Sie, dass Sie sowohl das Root-Zertifikat als auch alle Intermediate-Zertifikate benötigen.
Nun sollten alle Zertifikate in /home/myUser abgelegt sein.
Im nächsten Schritt werden die Zertifikate in den in Schritt 1 erstellten Ordner kopiert. Der Ordner /opt/simplifer/data/conf/certs wurde aus dem Container heraus erstellt. Der entsprechende Pfad auf dem Host hängt von Ihrer Einrichtung ab. Wenn Sie unseren Empfehlungen während der Einrichtung gefolgt sind, ist dieser entsprechende Pfad /var/lib/simplifier/data/conf/certs (für Simplifier 8) oder /var/lib/simplifier/simplifier/conf/certs (für Simplifier 8 EHP 2).
Simplifier 8:
cp /home/myUser/*.crt /var/lib/simplifier/data/conf/certs/
Simplifier 8 EHP 1 oder neuer
cp /home/myUser/*.crt /var/lib/simplifier/simplifier/conf/certs/
Nun ist der Import vorbereitet. Der Import muss aus dem Container heraus erfolgen. Verbinden Sie sich mit dem Container (Containername hängt von Ihrer Einrichtung ab):
docker exec -it simplifier /bin/bash
Für den Import von Zertifikaten wird ein Tool namens keytool verwendet. Gehen Sie zu dem Ordner, in dem Sie die Zertifikate und den kopierten Truststore abgelegt haben:
cd /opt/simplifier/data/conf/certs
Überprüfen Sie, ob alle erwarteten Dateien vorhanden sind:
ls -l
Dieser Befehl sollte cacerts und eine oder mehrere Zertifikatsdateien anzeigen. Nun kann der eigentliche Import durchgeführt werden:
keytool -import -trustcacerts -alias [name in keystore] -file [file name] -keystore ./cacerts
Wiederholen Sie diesen Befehl für jedes Zertifikat, das Sie importieren möchten.
3. JVM-Argumente ändern, um benutzerdefinierten Truststore zu verwenden
Um Simplifier mitzuteilen, dass er den neuen Truststore verwenden soll, muss dieser zu den Argumenten hinzugefügt werden, die an die JVM übergeben werden. Es gibt mehrere Möglichkeiten, dies zu erreichen. Welche zu verwenden ist, hängt von Ihrer Einrichtung ab.
docker compose default setup
Die meisten Einstellungen können in .env geändert werden. In diesem Fall ist dies nicht möglich, aber die Docker Compose YAML-Datei muss angepasst werden. Öffnen Sie simplifer-standalone.yml (Simplifier 8) oder docker-compose.yml (Simplifier 8 EHP 2) in einem Texteditor.
Suchen Sie nach der Zeile:
- JVM_PARAMETER=-Xmx${SIMPLIFIER_JVM_HEAP_GB}g -Xms2g -XX:MaxMetaspaceSize=512m -XX:+UseG1GC -XX:+UseStringDeduplication -XX:-UseGCOverheadLimit -Xss256m
Standardmäßig ist dies Zeile 50.
Fügen Sie Folgendes am Ende der Zeile hinzu:
-Djavax.net.ssl.trustStore=/opt/simplifier/data/conf/certs/cacerts
Environment Variable
Sie können eine Umgebungsvariable namens definieren
JVM_PARAMETER
Wenn Sie diese Variable bereits definiert haben, fügen Sie einfach
-Djavax.net.ssl.trustStore=/opt/simplifier/data/conf/certs/cacerts
am Ende hinzu.
Wenn Sie diese Variable zum ersten Mal definieren, müssen Sie sie mit dem Standardwert und dem Pfad zum Truststore initialisieren:
-Xmx8g -Xms2g -XX:MaxMetaspaceSize=512m -XX:+UseG1GC -XX:+UseStringDeduplication -XX:-UseGCOverheadLimit -Xss256m -Djavax.net.ssl.trustStore=/opt/simplifier/data/conf/certs/cacerts
jvm.arg file
Wenn Sie bereits eine jvm.arg-Datei verwenden, bearbeiten Sie diese und fügen Sie am Ende des aktuellen Inhalts Folgendes hinzu:
-Djavax.net.ssl.trustStore=/opt/simplifier/data/conf/certs/cacerts
Wenn Sie noch keine jvm.arg-Datei verwenden, implementieren Sie dies bitte mit einer der beiden anderen Möglichkeiten.
4. Simplifier neu starten
Um diese Änderungen zu übernehmen, muss Simplifier gestoppt und neu gestartet werden.
Für Docker Compose:
docker compose -f [...] down docker compose -f [...] up -d
Wenn Sie eine jvm.arg-Datei verwendet haben, reicht ein Neustart aus:
docker restart simplifier
Bitte passen Sie den Containernamen an Ihre Einrichtung an.
Starten Sie für jede andere Bereitstellung / Orchestrierung den Simplifier-Container neu oder erstellen Sie ihn neu. Stellen Sie sicher, dass Sie eine Methode wählen, die sicherstellt, dass die in Schritt 3 vorgenommenen Änderungen berücksichtigt werden.











