【发布时间】: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