JAX-RPCクライアントライブラリを使用し、レガシーバージョンのJava(1.4.2)で実行されているアプリケーションがあり、次のSSLエラーを受信しています。
java.lang.NoClassDefFoundError
javax.crypto.Cipher.a(DashoA6275)
javax.crypto.Cipher.getInstance(DashoA6275)
com.sun.net.ssl.internal.ssl.SunJSSE_i.a(DashoA12275)
com.sun.net.ssl.internal.ssl.CipherBox$JCECipherBox.<init>(DashoA12275)
com.sun.net.ssl.internal.ssl.CipherRC4.a(DashoA12275)
com.sun.net.ssl.internal.ssl.SunJSSE_h.a(DashoA12275)
com.sun.net.ssl.internal.ssl.CipherSuite$BulkCipher.a(DashoA12275)
com.sun.net.ssl.internal.ssl.SunJSSE_ax.c(DashoA12275)
com.sun.net.ssl.internal.ssl.SSLSocketImpl.f(DashoA12275)
com.sun.net.ssl.internal.ssl.SunJSSE_ax.a(DashoA12275)
com.sun.net.ssl.internal.ssl.SunJSSE_az.j(DashoA12275)
com.sun.net.ssl.internal.ssl.SunJSSE_az.a(DashoA12275)
com.sun.net.ssl.internal.ssl.SunJSSE_az.a(DashoA12275)
com.sun.net.ssl.internal.ssl.SunJSSE_ax.a(DashoA12275)
com.sun.net.ssl.internal.ssl.SSLSocketImpl.a(DashoA12275)
com.sun.net.ssl.internal.ssl.SSLSocketImpl.j(DashoA12275)
com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(DashoA12275)
sun.net.www.protocol.https.HttpsClient.afterConnect(DashoA12275)
sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(DashoA12275)
sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:569)
sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(DashoA12275)
com.sun.xml.rpc.client.http.HttpClientTransport.writeMessageToConnection(HttpClientTransport.java:278)
com.sun.xml.rpc.client.http.HttpClientTransport.invoke(HttpClientTransport.java:64)
com.sun.xml.rpc.client.StreamingSender._send(StreamingSender.java:69)
[ ... trace continues into internal application code ... ]
これは以前は機能しており、クライアントライブラリへの唯一の変更は、使用されている認証プロトコルに関連するものであり、BouncyCastleの最新ビルドへの更新が必要でした。これらの変更はすべてSSLプロトコルよりも高いレベルであり、このエラーにはBouncyCastleが関係していないようです。
誰かが以前にこのようなエラーを見たことがあり、おそらく何か考えや提案がありますか?に証明書を追加してみましたcacerts
。これは、Java 1.6に対して実行すると正常に機能しますが、残念ながら、これを実行している本番システムは、当面はJava1.4に関連付けられたままです。
また、JAX-RPCコードと、SSLを使用せずに開発システムに接続した場合に実行される認証は正しく機能します。
[編集-追加情報]新しいバージョンのBouncyCastleと競合が発生し、問題が発生していることがわかりました。古い(1.18)バージョンを使用してみましたが、SSLエラーが発生しないようですが、新しいアルゴリズムが必要なため、代わりにアプリケーションからSSLエラーを取得します。