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-ssl.xml
mit diesem Inhalt:jetty-ssl.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 http://www.springframework.org/schema/beans/spring-beans-4.0.xsd http://cxf.apache.org/configuration/security http://cxf.apache.org/schemas/configuration/security.xsd http://cxf.apache.org/transports/http/configuration http://cxf.apache.org/schemas/configuration/http-conf.xsd http://cxf.apache.org/transports/http-jetty/configuration http://cxf.apache.org/schemas/configuration/http-jetty.xsd http://cxf.apache.org/core http://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="keystore.jks" password="password" type="JKS" /> </sec:keyManagers> <sec:trustManagers> <sec:keyStore file="keystore.jks" password="password" type="JKS" /> </sec:trustManagers> <sec:cipherSuitesFilter> <!-- these filters ensure that a ciphersuite with export-suitable or null encryption is used, but exclude anonymous Diffie-Hellman key change as this is vulnerable to man-in-the-middle attacks --> <sec:include>.*_EXPORT_.*</sec:include> <sec:include>.*_EXPORT1024_.*</sec:include> <sec:include>.*_WITH_DES_.*</sec:include> <sec:include>.*_WITH_AES_.*</sec:include> <sec:include>.*_WITH_NULL_.*</sec:include> <sec:exclude>.*_DH_anon_.*</sec:exclude> </sec:cipherSuitesFilter> <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/webservices.xml
folgende Zeile ergänzt werden:Ergänzung in webservices.xml<import resource="jetty-ssl.xml"/>
Die Addresse und der Port entsprechend der Werte im jetty-ssl.xml anpassen
Anpassung in webservices.xml<jaxws:endpoint id="jobServiceEndpoint" implementor="#jobService" address="https://${jadice.server.hostname}:9001/jadiceServer">
Weitere Informationen zu den Einstellungen können Sie der Dokumentation von Apache CXF Jetty entnehmen.
Related articles