...
Der embedded jetty-Server, den jadice server mitbringt, muss so konfiguriert werden, dass dieser die für die Verschlüsselung benötigten Keystores kennt. Dazu erstellen Sie unter
server-config/application
die Dateijetty-tls.xml
mit diesem Inhalt:Codeblock language xml title jetty-tls.xml <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:http="http://cxf.apache.org/transports/http/configuration" xmlns:httpj="http://cxf.apache.org/transports/http-jetty/configuration" xmlns:sec="http://cxf.apache.org/configuration/security" xmlns:cxf="http://cxf.apache.org/core" xsi:schemaLocation=" http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans-4.0.xsd http://cxf.apache.org/configuration/security https://cxf.apache.org/schemas/configuration/security.xsd http://cxf.apache.org/transports/http/configuration https://cxf.apache.org/schemas/configuration/http-conf.xsd http://cxf.apache.org/transports/http-jetty/configuration https://cxf.apache.org/schemas/configuration/http-jetty.xsd http://cxf.apache.org/core https://cxf.apache.org/schemas/core.xsd"> <cxf:bus /> <httpj:engine-factory bus="cxf"> <httpj:engine port="9001"> <httpj:tlsServerParameters> <sec:keyManagers keyPassword="password"> <sec:keyStore file="C:\path\to\your\keystore.jks" password="password" type="JKS" /> </sec:keyManagers> <sec:trustManagers> <sec:keyStore file="C:\path\to\your\keystore.jks" password="password" type="JKS" /> </sec:trustManagers> <sec:clientAuthentication want="true" required="false" /> </httpj:tlsServerParameters> <httpj:handlers> <bean class="org.eclipse.jetty.server.handler.DefaultHandler" /> </httpj:handlers> </httpj:engine> </httpj:engine-factory> </beans>
Beachten Sie bitte, dass für den Keystore der absolute Pfad im Dateisystem angegeben werden muss.
Um die oben erzeugte Konfigurationsdatei in jadice server einzubinden muss in der Datei
server-config/application/server.xml
folgende Zeile ergänzt werden - und zwar nach dem Import der rest.xml:Codeblock language xml title Ergänzung in server.xml <import resource="jetty-tls.xml"/>
Die Addresse und den Port in der Datei
server-config/application/rest.xml
entsprechend der Werte im jetty-tls.xml anpassenCodeblock language xml title Anpassung in rest.xml <value>https://${jadice.server.hostname}:9001</value> <value>https://localhost:9001</value> ... <jaxrs:server id="restEndpoint" address="https://${jadice.server.hostname}:9001/jadiceServer">
...
Password mittels jetty-util.jar "verschleiern".
Codeblock language bash theme Midnight title obfuscate password # im Root Verzeichnis der jadice server Installation ausführen - oder alternativ ein anderes jetty-util.jar verwenden $ java -cp server-lib/jetty-util-9.4.43.v20210629.jar org.eclipse.jetty.util.security.Password password 2022-02-21 16:14:52.735:INFO::main: Logging initialized @175ms to org.eclipse.jetty.util.log.StdErrLog password OBF:1v2j1uum1xtv1zej1zer1xtn1uvk1v1v MD5:5f4dcc3b5aa765d61d8327deb882cf99
Umgebungsvariable anlegen. Hierzu das Ergebnis von Schritt 1 inklusive
OBF:
verwenden.Codeblock language bash theme Midnight title create environment variable # unter linux $ export JS_JETTY_KEYSTORE_PASSWORD=OBF:1z0f1vu91vv11z0f # unter Windows # z.B. über die GUI, z.B.: Systemsteuerung\System und Sicherheit\System > Erweiterte Systemeinstellungen > Umgebungsvariablen > Systemvariablen "Neu"
Passwort in der Datei
server-config/application/jetty-tls.xml
durch Platzhalter ersetzen.Codeblock language xml theme Midnight <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:http="http://cxf.apache.org/transports/http/configuration" xmlns:httpj="http://cxf.apache.org/transports/http-jetty/configuration" xmlns:sec="http://cxf.apache.org/configuration/security" xmlns:cxf="http://cxf.apache.org/core" xsi:schemaLocation=" http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans-4.0.xsd http://cxf.apache.org/configuration/security https://cxf.apache.org/schemas/configuration/security.xsd http://cxf.apache.org/transports/http/configuration https://cxf.apache.org/schemas/configuration/http-conf.xsd http://cxf.apache.org/transports/http-jetty/configuration https://cxf.apache.org/schemas/configuration/http-jetty.xsd http://cxf.apache.org/core https://cxf.apache.org/schemas/core.xsd"> <cxf:bus /> <httpj:engine-factory bus="cxf"> <httpj:engine port="9001"> <httpj:tlsServerParameters> <sec:keyManagers keyPassword="${JS_JETTY_KEYSTORE_PASSWORD}"> <sec:keyStore file="C:\path\to\your\keystore.jks" password="${JS_JETTY_KEYSTORE_PASSWORD}" type="JKS" /> </sec:keyManagers> <sec:trustManagers> <sec:keyStore file="C:\path\to\your\keystore.jks" password="${JS_JETTY_KEYSTORE_PASSWORD}" type="JKS" /> </sec:trustManagers> <sec:clientAuthentication want="true" required="false" /> </httpj:tlsServerParameters> <httpj:handlers> <bean class="org.eclipse.jetty.server.handler.DefaultHandler" /> </httpj:handlers> </httpj:engine> </httpj:engine-factory> </beans>
...