【问题标题】:Error in configuration of Keystore , TrustStore in javajava中的Keystore、TrustStore配置错误
【发布时间】:2012-11-22 08:00:47
【问题描述】:

我想访问 ssl 网络服务。

  1. 我已经在 Netbeans 中生成了客户端绑定
  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 中包含了以下代码,但它给出了以下错误,请指导我如何配置密钥库,信任库。

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

【问题讨论】:

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


    【解决方案1】:

    解决了问题,

    我没有使用与复制策略 jar 相同的 JVM Eclipse 环境中 JCE-6 配置的一部分。

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

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

    【讨论】:

      【解决方案2】:

      您可能需要安装无限强度加密策略文件:http://www.oracle.com/technetwork/java/javase/downloads/jce-6-download-429243.html

      由于美国出口法律禁止加密,Java 未提供强加密,但您可以通过替换上面下载的 $JAVA_HOME/lib/security 中的 local_policy.jarUS_export_policy.jar 来单独启用它。

      【讨论】:

      猜你喜欢
      • 2023-02-02
      • 2023-03-25
      • 2016-07-28
      • 1970-01-01
      • 1970-01-01
      • 2018-07-19
      • 2023-04-01
      • 2023-04-03
      • 2013-02-22
      相关资源
      最近更新 更多