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.
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: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>
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"/>
Die Addresse und der Port in der Datei
server-config/application/soap.xml
entsprechend der Werte im jetty-tls.xml anpassenAnpassung 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