2016-07-06 142 views
-1

我是JAX-WS SOAP Web Service的新手,任何人都可以幫助我如何通過https使用soap web服務。JAX-WS通過HTTPS/SSL/TLS的SOAP Web服務客戶端

發佈者與我分享了ssl certificate(.cer),使用keytool命令將其導入TrustStore

現在通過https secure layer調用saop webservice我需要.jks文件將其設置爲System Environment Variable

我跟着很多資源How can i create keystore from an existing certificate (abc.crt) and abc.key files? 但它期待serverprivatekey.key文件。 我沒有私鑰與我,請幫助如何繼續。

我在正確的方式嗎?或者我的方法有問題?

回答

0

你不需要服務器的私鑰。您只需將公鑰certificate.cer導入信任庫。 (真的,你只需要根證書)。如果您已經在JKS完成,配置通過

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

注意使用方法:的HTTPS連接的的TrustManager將驗證握手檢查由服務器perfomed簽名相當於在服務器的身份公鑰。所以私鑰必須是私人的,你不應該訪問它。

+0

感謝您的回答。我已經將system屬性設置爲System.setProperty(「javax.net.ssl.trustStore」,「C:\\ Program Files \\ Java \\ jdk1.8.0_45 \\ jre \\ lib \\ security \\ cacerts 「); \t \t System.setProperty(「javax.net.ssl.trustStorePassword」,「changeit」);'。但我得到了** org.apache.cxf.ws.policy.PolicyException:沒有一個可以滿足的策略**。 –

+0

因爲是默認行爲,所以不需要將'javax.net.ssl.trustStore'指向JDK'cacerts'。新問題與SSL無關。可能需要在SOAP頭中設置憑證。查看http://stackoverflow.com/questions/12072500/apache-cxf-none-of-the-policy-alternatives-can-be-satisfied – pedrofb