我有一个用 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)
这是来自服务器的日志文件。如何强制它使用 SSLv3 而不是 TLSv1?我可以通过控制台更改它吗?有人告诉我它可以在服务器上运行,但是我无权访问设置。除了设置之外可能是什么情况?不同版本的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()
...