Jadice Server Webservice-Schnittstelle mit TLS absichern

Jadice Server Webservice-Schnittstelle mit TLS absichern

Step-by-step guide

Um die Webservice-Schnittstelle von jadice server über TLS abzusichern müssen drei Dinge angepasst werden.

  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:

    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="9000"> <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>

Hinweis: Ab der jadice server Version 5.16.0.0 muss die “handlers” Definition entfernt werden (Zeile 28-30)!

  1. 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 soap.xml:

    Ergänzung in server.xml

    <import resource="jetty-tls.xml"/>



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

    Anpassung in soap.xml

    <jaxws:endpoint id="jobServiceEndpoint" implementor="#jobService" address="https://${jadice.server.hostname}:9000/jadiceServer">

Absicherung von Passwörtern

Zur Absicherung von Passwörtern, siehe Abschnitt Passwörter absichern im analogen Artikel zur REST-Schnittstelle.

Weitere Informationen

Informationen zu den Einstellungen können Sie der Dokumentation von Apache CXF Jetty entnehmen.

Treten Probleme bei der Aktivierung von TLS auf, hilft die System-Property -Djavax.net.debug=all oft weiter, um das Problem einzugrenzen. Diese Einstellung kann in der Datei wrapper/wrapper.conf eingetragen werden. Oracle bietet einen ausführlichen Artikel zum Thema "Debugging SSL/TLS Connections" an.

Related articles