Javaで記述されたコンポーネントがありますが、変更できません。これはWAS 7にデプロイされ、https経由でWebサービスを呼び出そうとします。私は得ています:
サーバーがサポートされていない、または無効になっているプロトコルを選択しました:SSLv3
SoapUIまたはJavaアプリ(WASと同じバージョンのJava)から同じWebサービスを呼び出そうとすると、同じエラーが発生しましたが、次の方法で簡単に修正できました。
System.setProperty("https.protocols", "SSLv3");
何らかの理由で、websphereを強制的に動作させることができませんでした。このプロパティをコンソールで設定しましたが、エラーは同じでした。システムプロパティを印刷すると、正しく設定されていることがわかります。
Java version:
java version "1.6.0" Java(TM) SE Runtime Environment (SR10 FP1)
IBM J9 VM (build 2.4, JRE 1.6.0 IBM J9)
これはサーバーからのログファイルです。TLSv1の代わりにSSLv3を使用するように強制するにはどうすればよいですか?コンソールから変更できますか?サーバー上で動作すると言われましたが、設定にアクセスできません。設定以外はどうなるでしょうか?別のバージョンのJVM、WAS?
[1/24/13 17:04:58:842 CET] 0000003e SystemOut O WebContainer : 4, **WRITE: TLSv1 Handshake**, length = 57
[1/24/13 17:04:58:967 CET] 0000003e SystemOut O WebContainer : 4, **READ: SSLv3 Handshake**, length = 74
[1/24/13 17:04:58:967 CET] 0000003e SystemOut O *** **ServerHello, SSLv3**
...
[1/24/13 17:04:58:967 CET] 0000003e SystemOut O WebContainer : 4, handling exception: javax.net.ssl.SSLHandshakeException: **Server chose unsupported or disabled protocol: SSLv3**
[1/24/13 17:04:58:967 CET] 0000003e SystemOut O WebContainer : 4, SEND TLSv1 ALERT: fatal, description = handshake_failure
[1/24/13 17:04:58:967 CET] 0000003e SystemOut O WebContainer : 4, WRITE: TLSv1 Alert, length = 2
[1/24/13 17:04:58:967 CET] 0000003e SystemOut O WebContainer : 4, called closeSocket()
[1/24/13 17:04:58:967 CET] 0000003e SystemOut O WebContainer : 4, called close()
...