【问题标题】:SSL handshake failure Websphere 1 of 2 serversSSL 握手失败 Websphere 1 of 2 服务器
【发布时间】:2019-05-18 14:19:47
【问题描述】:

设置:

  • 2 个 websphere 服务器 (8.5 fixpack 13),两者(乍一看)相同的配置。
  • 1 次申请(耳朵有 2 次战争)

问题:

2 台服务器中有 1 台的 SSL 握手失败。
我启用了用于调试 SSL 的日志记录,并发现服务器之间存在以下差异:

良好的服务器

[12/18/18 8:08:52:466 CET] 0000017d SystemOut O 客户端写入密钥:
[12/18/18 8:08:52:466 CET] 0000017d SystemOut O 0000: 3d 82 67 06 09 d0 a8 93 01 8f 42 93 e3 24 6d c0 ..g........B....m。 0010: 76 cb 4a 7f b9 a7 3e 61 c7 ac ca 60 08 77 a5 a0 v.J....a....w..

[12/18/18 8:08:52:466 CET] 0000017d SystemOut O 服务器写入密钥:
[12/18/18 8:08:52:466 CET] 0000017d SystemOut O 0000: ad d4 83 5c b2 6f e8 ad a5 7e 5d 50 39 04 78 74 .....o.....P9.xt 0010: f7 7f 2d 73 c7 1f aa f0 5c 72 ac ce a5 cc 76 21 ...s.....r....v.

服务器错误

[12/18/18 8:08:51:817 CET] 0000013d SystemOut O 客户端写入 键:
[12/18/18 8:08:51:817 CET] 0000013d SystemOut O 0000: 2f 67 20 ee 13 d6 22 03 d6 aa bc 78 ca bf a9 0a .g.......x....

[12/18/18 8:08:51:817 CET] 0000013d SystemOut O 服务器写入 键:
[12/18/18 8:08:51:817 CET] 0000013d SystemOut O 0000: fc 64 13 e2 98 00 af cc 10 ae 34 80 fb 2c ab 5d .d........4.....

[12/18/18 8:08:51:817 CET] 0000013d SystemOut O ... 没有衍生 IV 对于此协议
[12/18/18 8:08:51:817 CET] 0000013d SystemOut
O JsseJCE:通过 init 使用来自提供商 TBD 的签名 SHA512withRSA
[12/18/18 8:08:51:818 CET] 0000013d SystemOut O 签名: 使用来自 initSignIBMJCE 版本 1.8 的提供者的签名 RSA
[12/18/18 8:08:51:821 CET] 0000013d 系统输出 O 证书验证
[12/18/18 8:08:51:821 CET] 0000013d SystemOut
O 签名算法 SHA512withRSA
[12/18/18 8:08:51:822 CET] 0000013d SystemOut O JsseJCE:使用来自的 KeyGenerator IbmTls12Prf 提供者 TBD 通过 init
[12/18/18 8:08:51:822 CET] 0000013d SystemOut O HandshakeMessage:TLS 密钥生成器 IbmTlsPrf 来自 来自 init IBMJCE 版本 1.8 的提供程序
[12/18/18 8:08:51:822 CET] 0000013d SystemOut O WebContainer:0,写:TLSv1.2握手, 长度 = 136
[12/18/18 8:08:51:822 CET] 0000013d SystemOut O WebContainer:0,写入:TLSv1.2 更改密码规范,长度 = 1
[12/18/18 8:08:51:822 CET] 0000013d SystemOut O JsseJCE:使用 通过初始化从提供商 TBD 加密 AES/CBC/NoPadding
[18/12/18 8:08:51:822 CET] 0000013d SystemOut O CipherBox:使用密码 来自 init IBMJCE 版本 1.8 的提供商的 AES/CBC/NoPadding
[12/18/18 8:08:51:823 CET] 0000013d SystemOut O JsseJCE:使用 MAC HmacSHA1 来自提供商 TBD 通过初始化
[12/18/18 8:08:51:823 CET] 0000013d SystemOut O MAC:使用来自的 MessageDigest HmacSHA1 提供者 IBMJCE 版本 1.8
[12/18/18 8:08:51:823 CET] 0000013d SystemOut O 已完成
[12/18/18 8:08:51:823 CET] 0000013d SystemOut O verify_data: { 150, 40, 219, 56, 139, 255, 165, 51, 71, 246, 110, 176 }
[12/18/18 8:08:51:824 CET] 0000013d SystemOut O
[12/18/18 8:08:51:824 CET] 0000013d SystemOut O WebContainer:0,写入:TLSv1.2 握手,长度 = 64
[12/18/18 8:08:51:876 CET] 0000013d SystemOut O WebContainer:0,阅读: TLSv1.2 更改密码规范,长度 = 1
[12/18/18 8:08:51:876 CET] 0000013d SystemOut O JsseJCE:使用密码 AES/CBC/NoPadding 提供者 TBD 通过初始化
[12/18/18 8:08:51:876 CET] 0000013d SystemOut O CipherBox:使用密码 AES/CBC/NoPadding 来自 init IBMJCE 版本 1.8 的提供程序
[12/18/18 8:08:51:876 CET] 0000013d SystemOut O JsseJCE:使用来自提供商的 MAC HmacSHA1 待定通过初始化
[12/18/18 8:08:51:877 CET] 0000013d SystemOut O MAC:使用来自提供商 IBMJCE 版本的 MessageDigest HmacSHA1 1.8
[12/18/18 8:08:51:877 CET] 0000013d SystemOut O WebContainer:0,读取:TLSv1.2 握手,长度 = 64
[12/18/18 8:08:51:877 CET] 0000013d SystemOut O 完成
[12/18/18 8:08:51:877 CET] 0000013d SystemOut O verify_data: { 217, 179, 178, 151, 190, 135, 169, 219, 85, 206, 55, 194 }
[12/18/18 8:08:51:878 CET] 0000013d SystemOut O
[12/18/18 8:08:51:878 CET] 0000013d SystemOut O JsseJCE:使用 KeyGenerator IbmTls12Prf 来自提供商 TBD 通过 init
[12/18/18 8:08:51:878 CET] 0000013d SystemOut O HandshakeMessage:TLS 密钥生成器 IbmTlsPrf 来自 来自 init IBMJCE 版本 1.8 的提供程序
[12/18/18 8:08:51:878 CET] 0000013d SystemOut O %% 缓存客户端会话:[Session-129, SSL_RSA_WITH_AES_128_CBC_SHA]
[12/18/18 8:08:51:895 CET] 0000013d SystemOut O WebContainer:0,写入:TLSv1.2 应用程序数据, 长度 = 336
[12/18/18 8:08:51:895 CET] 0000013d SystemOut O WebContainer:0,写入:TLSv1.2 应用程序数据,长度 = 5984
[12/18/18 8:08:52:053 CET] 0000013d SystemOut O WebContainer:0, 阅读:TLSv1.2 应用程序数据,长度 = 1008
[12/18/18 8:08:52:054 CET] 0000013d SystemOut O WebContainer:0,调用 关闭()
[12/18/18 8:08:52:054 CET] 0000013d SystemOut O WebContainer:0,称为 closeInternal(true)
[12/18/18 8:08:52:054 CET] 0000013d SystemOut O WebContainer:0,发送 TLSv1.2 ALERT:警告,描述 = close_notify
[12/18/18 8:08:52:054 CET] 0000013d SystemOut O WebContainer:0,写: TLSv1.2 警报,长度 = 48
[12/18/18 8:08:52:054 CET] 0000013d SystemOut O WebContainer : 0, 称为 closeSocket(true)
[12/18/18 8:08:52:603 CET] 0000013d SystemOut O SSLv3 协议是 已请求但未启用
[12/18/18 8:08:52:604 CET] 0000013d 系统输出 O

正如我在好服务器中标记的那样,我在客户端和服务器中看到了部分 0010 的写入密钥,而坏服务器中没有。
我假设因为它不存在 SSL 握手失败导致调用失败。

我们使用了很多网络服务,我们只有 2 个端点有问题,其他端点在两台服务器上都运行良好。

如果有人能指出搜索的方向,我将非常感激。

编辑:

  • 尝试添加:-Dcom.ibm.jsse2.overrideDefaultTLS=true 作为启动参数,但没有帮助。

【问题讨论】:

  • “已请求 SSLv3 协议但未启用”这是否意味着客户端尝试在服务器端请求 SSLv3 bur 对此的支持已禁用? (SSLv3 很久以前就被弃用了)
  • 您可以尝试使用带有 -vvv 选项的 curl 访问服务吗?我发现 curl 日志更可红Cipher selection: ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH * successfully set certificate verify locations: * CAfile: C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt CApath: none * TLSv1.2 (OUT), TLS header, Certificate Status (22): } [5 bytes data] * TLSv1.2 (OUT), TLS handshake, Client hello (1): } [512 bytes data] * TLSv1.2 (IN), TLS handshake, Server hello (2): { [89 bytes data] * TLSv1.2 (IN), TLS handshake, Certificate (11): ...
  • @IrekL。感谢评论,SSLv3 确实是客户端请求的,但我们不使用 SSLv3,因为它不安全。我们发现了问题,我也在主题中添加了它。
  • 建议您在此处添加解决方案作为“答案”,并接受它。
  • @dbreaux 完成,只能在 16 小时内接受。

标签: java web-services ssl websphere


【解决方案1】:

似乎坏服务器上的安全性配置为标准而不是更安全的美国版本:

  • JDK/jre/lib/security/local_policy.jar
  • JDK/jre/lib/security/US_export_policy.jar

你可以在this Dzone article.找到更多解释

【讨论】:

    猜你喜欢
    • 2018-10-17
    • 1970-01-01
    • 2015-08-17
    • 1970-01-01
    • 2017-01-27
    • 2016-09-23
    • 1970-01-01
    • 1970-01-01
    • 2018-07-28
    相关资源
    最近更新 更多