在两个 Websphere 服务器之间获取 SSLHandshake 异常

Posted

技术标签:

【中文标题】在两个 Websphere 服务器之间获取 SSLHandshake 异常【英文标题】:Getting SSLHandshake Exception between two Websphere Servers 【发布时间】:2019-08-18 19:39:37 【问题描述】:

有 2 个 Websphere 服务器。第一个是Client,第二个是Server (8.5.5.13)。

最终用户向客户端发出 SOAP 请求。客户端收到请求,进行一些处理,然后向服务器发出 REST 请求

当服务器收到来自客户端的请求时,它会抛出以下异常。

错误 22304 --- [ebContainer:2] c.i.w.s.c.impl.SSLHandshakeErrorTracker:SSLC0008E:无法 初始化 SSL 连接。未经授权的访问被拒绝或安全 设置已过期。例外是 javax.net.ssl.SSLHandshakeException:客户端请求的协议 TLSv1 未启用或不支持

我们在服务器级别启用 TLSv1.2TLSv1 后进行了测试。我们已从服务器导出证书并添加到客户端信任库中。但我们仍然无法解决错误。

问题: 1. 我们是否需要在我们的服务器上保持与客户端 WebSphere 中存在的相同的 TLS 版本? 2.我们已经部署了我们的应用程序是java7。是不是因为Java版本我们面临这个问题? 3. 是因为证书,还是其他原因?

当我们在服务器上禁用全局安全时,请求正在正确处理。

【问题讨论】:

【参考方案1】:

此错误是由于服务器上的 TLS 版本不兼容造成的。客户端使用 TLSv1 发送请求,服务器启用了 TLSv1.2。对于 SSL 握手,首先是 TLS 兼容性。客户端和服务器应具有相同的 TLS 版本。

在此之后,如果您使用一种方式的 SSL 握手,则需要从服务器计算机提取证书,并将其安装在客户端计算机中。这样 SSL 握手就会发生。

【讨论】:

以上是关于在两个 Websphere 服务器之间获取 SSLHandshake 异常的主要内容,如果未能解决你的问题,请参考以下文章

在 Websphere 应用程序服务器中添加了密码 SSL_RSA_WITH_AES_128_GCM_SHA256 但它在日志中不可见并且正在发生握手异常

Liberty Websphere 上没有共同的密码套件

Websphere在哪里寻找SSL证书

SSL 证书是不是绑定到服务器 IP 地址?

Websphere 9 总是为 SSL 握手发送 ClientHello TLSv1。我如何强制使用 TLSv1.2

在 IBM MobileFirst Adapter 中使用内部 CA 时,WebSphere Application Server 中出现 SSL 错误