Verwenden Sie keystore-Datei client für eine SOAP-WS
War ich ein SOAP-WS, mit zu arbeiten.
Sie gab mir die wsdl-Datei aus, die ich erzeugen konnte, client-stub (ich habe wsdl2java " in cxf).
Mit der wsdl-ich war auch eine .keystore-Datei und die Sache ist, ich weiß, wissen, wie es zu meinem hinzufügen keytool (ist dies auch der richtige Weg, es zu setzen?).
Habe ich gebaut junit test, die ich ausführen, um zu testen, meine Kunden, aber ich erhalte immer
HTTP transport error: javax.net.ssl.SSLHandshakeException: Sonne.Sicherheit.validator.ValidatorException: PKIX path building failed: sun.Sicherheit.Anbieter.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
Wo finde ich eine einfache Anleitung, was zu tun mit diesem .keystore-Datei?
Dank
InformationsquelleAutor user1241320 | 2013-06-27
Du musst angemeldet sein, um einen Kommentar abzugeben.
Der Fehler bedeutet, dass das server-Zertifikat konnte nicht gefunden werden in Ihrem truststore. Prüfen Sie den Inhalt der .keystore-Datei, um zu sehen, ob es enthält das server-Zertifikat (aufgeführt als trustedEntry in Ihrem truststore). Wenn ja, legen Sie die folgenden Systemeigenschaften (entweder über -D-JVM-parameter oder System.setProperty()).
Wenn diese Eigenschaften nicht gesetzt, wird der Standard werden abgeholt von Ihrem Standardspeicherort.[$JAVA_HOME/lib/security/jssecacerts, $JAVA_HOME/lib/security/cacerts]
Um den Inhalt der keystore-Datei, verwenden Sie
Debuggen von ssl-handshake-Prozess und die Zertifikate, legen Sie die VM-parameter -Djavax.net.debug=all
Wenn der web-Dienst erfordert eine 2-Wege-SSL, die der client senden muss, um seine Identität (abgeholt von Ihrem keystore). In diesem Fall, Ihre .keystore enthält ein privateKeyEntry, die gesendet werden, um den server während der handshake-Prozess. Um dies zu konfigurieren, legen Sie die JVM-Eigenschaften javax.net.ssl.keyStore und javax.net.ssl.keystorePassword aufweist, um auf Ihre keystore.
Hallo, falsche Zertifikat, sorry, mit den obigen Einstellungen sollte es funktionieren...
InformationsquelleAutor user1573133
Den nächsten arbeiten für mich:
Application server-Konfiguration. Apache Tomcat/7.0.52. server.xml: set clientAuth="true" in der https-connector.
Application server-Konfiguration. Apache Tomcat/7.0.52. tomcat-users.xml: erstellen Sie einen Benutzer mit der DN des Benutzers, wie er in Ihrem Zertifikat (subject)
Web-service -JAX-WS-web-service-eclipse tutorial. Dank Arpit! Fügen Sie es ein security-constraint im deployment-Deskriptor (web.xml)
Client. Generiert mit apache-cxf maven-plugin.
Main-Klasse:
Client JVM-Optionen:
Können Sie einen Blick hier: Java-SOAP-client-Zertifikat-Authentifizierung
InformationsquelleAutor Gaucho
Eine ausgezeichnete blog, um Ihnen zu helfen zu verstehen, die Schlüsselspeicher und Zertifikate die Einfuhren erforderlich für die HTTPS SSL-handshake:
http://ruchirawageesha.blogspot.in/2010/07/how-to-create-clientserver-keystores.html
Hoffe, es hilft Ihnen, setup ur client-keystore, um einen korrekten Aufruf der web-services.
Viel Glück!
InformationsquelleAutor Juned Ahsan