java - java中Keystore、TrustStore配置错误

标签 java web-services webservice-client keystore webservices-client

我想访问 ssl web 服务。

  1. 我已在 Netbeans 中生成了客户端绑定(bind)
  2. 生成 JKS 并将客户端 pfx 文件导入到 client.jks 使用 ckeystorepwd 和 calias
  3. Webservice Producer 已与 srvalias 和 srvkeystorepwd 共享 server.jks
  4. 我已在 NetBeans IDE 中配置了 Keystore 和 TrustStore,并且我 运行 Main.java 和

我能够使用网络服务。我想在没有 NetBeansIDE 的情况下使用 Web 服务。我需要将 Keystroe 和 Truststore (client.jks,server.jks) 配置为 务实的环境。

我已在 Main.java 中包含以下代码,但出现以下错误,请指导我如何配置 key 、信任库。

Main.java代码

System.setProperty("-Djavax.net.ssl.keyStore",JKSFILE);
System.setProperty("-Djavax.net.ssl.keyStorePassword",JKSPWD);
System.setProperty("javax.net.ssl.keyStoreType", "JKS");

System.setProperty("-Djavax.net.ssl.trustStore",JKSFILET);
System.setProperty("-Djavax.net.ssl.trustStorePassword",JKSPWDT);
System.setProperty("javax.net.ssl.requireClientAuth", "true");  
System.setProperty("com.sun.xml.ws.transport.http.client.
    HttpTransportPipe.dump","true");

URL u;  
u = new URL(MAIN_URL);  
IWebService service = new 
WebService(u).getWS2007HttpBindingIWebService();

错误

SEVERE: WSS1906: Invalid key provided for encryption/decryption.
java.security.InvalidKeyException: Illegal key size or default parameters
    at javax.crypto.Cipher.a(DashoA13*..)
    at javax.crypto.Cipher.a(DashoA13*..)
    at javax.crypto.Cipher.a(DashoA13*..)
    at javax.crypto.Cipher.init(DashoA13*..)
    at javax.crypto.Cipher.init(DashoA13*..)
    at com.sun.xml.ws.security.opt.impl.enc.CryptoProcessor.initCipher(CryptoProcessor.java:125)
    at com.sun.xml.ws.security.opt.impl.enc.CryptoProcessor.encryptData(CryptoProcessor.java:269)
    at com.sun.xml.ws.security.opt.impl.enc.CryptoProcessor.encrypt(CryptoProcessor.java:153)
    at com.sun.xml.ws.security.opt.impl.util.CVDataHandler.writeTo(CVDataHandler.java:69)
    at javax.activation.ObjectDataContentHandler.writeTo(Unknown Source)
    at javax.activation.DataHandler$1.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
Exception in thread "DataHandler.getInputStream" com.sun.xml.wss.impl.XWSSecurityRuntimeException: Unable to calculate cipher value as invalid key was provided

最佳答案

问题已解决,

I was not using the same JVM where I have copied the policy jar as part of JCE-6 configuration in Eclipse environment.

现在我已经更改了项目的 JRE,并且能够毫无问题地运行该程序。

C:\Program Files (x86)\Java\jdk1.6.0_33\bin\java -jar "WSClient.jar"

关于java - java中Keystore、TrustStore配置错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13508155/

相关文章:

java - 对列表对进行排序 java

java - 如何监控 Websphere 6 中的 HTTP 出站连接池使用情况?

调用 Web 服务时出现 javax.xml.ws.soap.SOAPFaultException

c++ - 用于 C++ 的通用 WebService (SOAP) 客户端库

Java 序列化对象(如区域)

java - BehaviorSubject 订阅另一个线程

java - 转换另一个列表中的列表

java - 415 不支持的媒体类型 JAX-WS

c# - 如何在 .NET/ASMX 中更改 WebService 响应的标签名称?

c# - 如何将 wcf 服务添加到现有类库