Versionen im Vergleich

Schlüssel

  • Diese Zeile wurde hinzugefügt.
  • Diese Zeile wurde entfernt.
  • Formatierung wurde geändert.

...

  1. 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 Datei jetty-tls.xml mit diesem Inhalt:

    Codeblock
    languagexml
    titlejetty-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.

  2. 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
    languagexml
    titleErgänzung in server.xml
    <import resource="jetty-tls.xml"/>


  3. Die Addresse und den Port in der Datei server-config/application/rest.xml entsprechend der Werte im jetty-tls.xml anpassen

    Codeblock
    languagexml
    titleAnpassung 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">


...

  1. Password mittels jetty-util.jar "verschleiern".

    Codeblock
    languagebash
    themeMidnight
    titleobfuscate 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
    
    


  2. Umgebungsvariable anlegen. Hierzu das Ergebnis von Schritt 1 inklusive OBF: verwenden.

    Codeblock
    languagebash
    themeMidnight
    titlecreate 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"


  3. Passwort in der Datei  server-config/application/jetty-tls.xml durch Platzhalter ersetzen. 

    Codeblock
    languagexml
    themeMidnight
    <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>


...