0

SSL Webサービスにアクセスしたい。

  1. Netbeans でクライアント バインディングを生成しました
  2. jks を生成し、ckeystorepwd と calias を使用してクライアント pfx ファイルを client.jks にインポートします。
  3. Webservice Producer は server.jks を srvalias および srvkeystorepwd と共有しています
  4. NetBeans IDE でキーストアとトラストストアを構成し、Main.java を実行しています。

Web サービスを使用できます。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
4

2 に答える 2

1

問題を解決し、

Eclipse環境でJCE-6構成の一部としてポリシーjarをコピーしたのと同じJVMを使用していませんでした。

これで、プロジェクトのJREを変更し、問題なくプログラムを実行できるようになりました。

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

于 2012-11-22T10:22:11.720 に答える
0

無制限の強度の暗号化ポリシー ファイルをインストールする必要がある場合があります: http://www.oracle.com/technetwork/java/javase/downloads/jce-6-download-429243.html

暗号化に対する米国の輸出法により、Java には強力な暗号化が同梱されていませんが、上記の のダウンロードからlocal_policy.jarとを置き換えることで、個別に有効にすることができます。US_export_policy.jar$JAVA_HOME/lib/security

于 2012-11-22T09:12:10.033 に答える