2016-07-06 24 views
-1

Ich bin neu in JAX-WS SOAP Web Service, kann mir jemand helfen, wie Seife Web-Service über https zu konsumieren.JAX-WS Soap Web-Service-Client über HTTPS/SSL/TLS

Publisher hat eine ssl certificate(.cer) mit mir geteilt, diese in einem TrustStore mit einem keytool Befehl importiert.

Jetzt Saop Webservice über eine https secure layer aufrufen Ich brauche die .jks Datei, um es als System Environment Variable einzustellen.

Ich folgte viele Ressourcen How can i create keystore from an existing certificate (abc.crt) and abc.key files? aber es erwartet serverprivatekey.key Datei. Ich habe keinen privaten Schlüssel bei mir, bitte helfen Sie weiter.

bin ich auf dem richtigen Weg? oder stimmt etwas nicht in meiner Herangehensweise?

Antwort

0

Sie benötigen den privaten Schlüssel des Servers nicht. Sie müssen nur den öffentlichen Schlüssel certificate.cer in einen Truststore importieren. (Wirklich brauchen Sie nur das Wurzelzertifikat). Wenn Sie bereits auf einem JKS geschehen, konfigurieren Sie es verwenden, um durch

System.setProperty("javax.net.ssl.trustStore",path/to/your/truststore); 
System.setProperty("javax.net.ssl.trustStorePassword",password; 

Hinweis: Die trust der HTTPS-Verbindung die Identität des Servers während des Handshake überprüfen überprüfen, ob die Signatur von Server perfomed auf das entspricht Öffentlicher Schlüssel. Der private Schlüssel muss also privat sein und Sie sollten nicht darauf zugreifen.

+0

Danke für Ihre Antwort. Ich habe die Systemeigenschaft als 'System.setProperty (" javax.net.ssl.trustStore "," C: \\ Programme \\ Java \\ jdk1.8.0_45 \\ jre \\ lib \\ security \\ cacerts "festgelegt "); \t \t System.setProperty ("javax.net.ssl.trustStorePassword", "changeit"); '. aber ich bekomme die ** org.apache.cxf.ws.policy.PolicyException: Keine der Richtlinienalternativen kann erfüllt werden **. –

+0

Sie müssen 'javax.net.ssl.trustStore' nicht auf JDK' cacerts' verweisen, da dies das Standardverhalten ist. Das neue Problem bezieht sich nicht auf SSL. Wahrscheinlich müssen Sie die Anmeldeinformationen im SOAP-Header festlegen. Siehe http://stackoverflow.com/questions/12072500/apache-cxf-none-of-the-policy-alternatives-can-be-atisfieded – pedrofb