0

我有一个用 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()

...
4

2 回答 2

0

您的 WebShpere 前面有 IHS(IBM HTTP 服务器)吗?

如果不:

要从域管理器控制台更改协议:安全​​ > SSL 证书和密钥管理 > SSL 配置 > NodeDefaultSSLSettings > 保护质量 (QoP) 设置

在那里您会找到一个组合协议,您可以在其中进行设置。如果默认的 SSL_TLS 已设置,您可以尝试更改为 SSLv3,但 SSL_TLS 应该能够处理 TLS 和 SSLv3,并且在此服务的路径上可能还有 WebSphere 以外的其他东西。

您可以在以下网址找到详细信息:http ://www.redbooks.ibm.com/redbooks/pdfs/sg247660.pdf

还有:http ://www.ibm.com/developerworks/websphere/techjournal/0612_birk/0612_birk.html#sec1

如果是:

比说明会有所不同,让我知道。:)

问候。

PS - 这是来自“客户端”的 WebSphere 服务器的日志吗?我闻到可能发生的事情是“客户端”是不支持 SSLv3 的那个,看起来 WebSphere 希望 SSLv3 关闭握手,但是客户网站不支持。如果是这种情况,您可以尝试将协议更改为 SSLv2,但建议这样做会带来安全风险。

于 2013-01-25T13:30:52.470 回答
0

不确定这是否有帮助,但是...

SSLHandshakeException

有什么相关的吗?

也许这里有一些帮助

还有1个...

答案是 SSLContext ctx = SSLContext.getInstance("SSLv3");

线程在这里

Websphere 应用程序故障排除

于 2013-01-24T20:21:29.503 回答