我无法理解 Dominos 为 WebService 传出连接提供 SSL 或 TLS 的行为。
我们有一个访问 WebService 的代理。该 WebService 仅接受 TLS 1.0
有时连接会崩溃,我打开 DEBUG_SSL_ALL=3 来查看发生了什么
我发现连接失败是因为服务器提供的是 SSLV3.0 而不是 TLS1.0,请参见 05:45:58 日志中的示例
服务器怎么会突然这样?我在另一篇文章中看到,这种情况有时会由于“恢复”而发生,这应该是一些记住并更快连接的行为。这听起来不错,但在这种情况下,这似乎不是原因。我让这个代理自行运行了几个小时,但它突然改变了协议。
我们的服务器由于其他原因需要保留使用 SSL 的能力,因此我暂时无法执行 DISABLE_SSLV3=1,并且接收服务器无法使用 SSL。
这是我的日志希望得到一些帮助连接的开始与我看到的相同,还有其他智能调试语句可以给我更多信息吗?
Domino 9.0.1 FP4
[10A4:000C-082C] 01/13/2016 05:26:59.36 PM SSLInitContext> 0 Available cipherspec: 0x0035
[10A4:000C-082C] 01/13/2016 05:26:59.36 PM SSLInitContext> 1 Available cipherspec: 0x002F
[10A4:000C-082C] 01/13/2016 05:26:59.36 PM SSLInitContext> 2 Available cipherspec: 0x000A
[10A4:000C-082C] 01/13/2016 05:26:59.36 PM SSLInitContext> 3 Available cipherspec: 0x0005
[10A4:000C-082C] 01/13/2016 05:26:59.36 PM int_MapSSLError> Mapping SSL error 0 to 0 [SSLNoErr]
[10A4:000C-082C] 01/13/2016 05:26:59.36 PM SSL_Handshake> Enter
[10A4:000C-082C] 01/13/2016 05:26:59.36 PM SSL_Handshake> Current Cipher 0x0000 (Unknown Cipher)
[10A4:000C-082C] 01/13/2016 05:26:59.36 PM SSL_Handshake> outgoing ->protocolVersion: 0301
[10A4:000C-082C] 01/13/2016 05:26:59.36 PM SSLAdvanceHandshake Enter> Processed : 0 State: 4 (HandshakeClientIdle)
[10A4:000C-082C] 01/13/2016 05:26:59.38 PM SSLAdvanceHandshake Enter> Processed : SSL_hello_request
[10A4:000C-082C] 01/13/2016 05:26:59.38 PM SSLAdvanceHandshake calling SSLPrepareAndQueueMessage> SSLEncodeClientHello
[10A4:000C-082C] 01/13/2016 05:26:59.38 PM SSLEncodeClientHello> We offered SSL/TLS version TLS1.0 (0x0301)
...
[1204:0006-1390] 01/13/2016 05:28:59.91 PM SSLEncodeClientHello> We offered SSL/TLS version TLS1.0 (0x0301)
...
[10A4:000F-08BC] 01/13/2016 05:29:54.78 PM SSLEncodeClientHello> We offered SSL/TLS version TLS1.0 (0x0301)
...
[0F38:000B-0BCC] 01/13/2016 05:36:03.58 PM SSLEncodeClientHello> We offered SSL/TLS version TLS1.0 (0x0301)
...
[1204:0009-0A94] 01/13/2016 05:45:58.19 PM SSLInitContext> 0 Available cipherspec: 0x0035
[1204:0009-0A94] 01/13/2016 05:45:58.19 PM SSLInitContext> 1 Available cipherspec: 0x002F
[1204:0009-0A94] 01/13/2016 05:45:58.19 PM SSLInitContext> 2 Available cipherspec: 0x000A
[1204:0009-0A94] 01/13/2016 05:45:58.19 PM SSLInitContext> 3 Available cipherspec: 0x0005
[1204:0009-0A94] 01/13/2016 05:45:58.21 PM int_MapSSLError> Mapping SSL error 0 to 0 [SSLNoErr]
[1204:0009-0A94] 01/13/2016 05:45:58.21 PM SSL_Handshake> Enter
[1204:0009-0A94] 01/13/2016 05:45:58.21 PM SSL_Handshake> Current Cipher 0x0000 (Unknown Cipher)
[1204:0009-0A94] 01/13/2016 05:45:58.21 PM SSL_Handshake> outgoing ->protocolVersion: 0301
[1204:0009-0A94] 01/13/2016 05:45:58.21 PM SSLAdvanceHandshake Enter> Processed : 0 State: 4 (HandshakeClientIdle)
[1204:0009-0A94] 01/13/2016 05:45:58.21 PM SSLAdvanceHandshake Enter> Processed : SSL_hello_request
[1204:0009-0A94] 01/13/2016 05:45:58.21 PM SSLAdvanceHandshake calling SSLPrepareAndQueueMessage> SSLEncodeClientHello
[1204:0009-0A94] 01/13/2016 05:45:58.21 PM SSLEncodeClientHello> We offered SSL/TLS version SSLV3.0 (0x0300)
...
[10A4:0012-08A0] 01/13/2016 05:50:59.42 PM SSLEncodeClientHello> We offered SSL/TLS version TLS1.0 (0x0301)
...
[10A4:0015-0DF4] 01/13/2016 05:52:23.57 PM SSLEncodeClientHello> We offered SSL/TLS version TLS1.0 (0x0301)
...
[10A4:0018-090C] 01/13/2016 05:53:33.55 PM SSLEncodeClientHello> We offered SSL/TLS version TLS1.0 (0x0301)
我知道 1.0 的密码。
密码与 WebService 相匹配,
正如我所写,Domino 突然(随机)喜欢提供日志部分
- 我们提供了 SSL/TLS 版本 SSLV3.0 (0x0300)(错误)
而不是
- 我们提供了 SSL/TLS 版本 TLS1.0 (0x0301)(成功)
我的日志中的密码适用于 TLS 1.0,因为我已设置 SSL_DISABLE_TLS_12=1
答案1
似乎您为 Domino 服务器配置的密码与 Web 服务提供的密码不匹配。您需要找出您的服务支持哪些密码,然后使用 SSLCipherSpec- notes.ini- 设置在 Domino 服务器上启用它们。
在此 IBM 网站您将找到适用于您的版本的所有受支持的密码列表。对于 9.0.1FP4,它显示:
TLS 1.0 / SSLv3 可用的密码
- DHE_RSA_WITH_AES_256_CBC_SHA (39)
- RSA_WITH_AES_256_CBC_SHA (35)
- RSA_WITH_AES_128_CBC_SHA (2F)
- DHE_RSA_WITH_AES_128_CBC_SHA (33)
- RSA_WITH_3DES_EDE_CBC_SHA (0A)
- RSA_WITH_RC4_128_SHA (05)
默认启用的密码是(如您的日志中所见):
- RSA_WITH_AES_256_CBC_SHA (35)
- RSA_WITH_AES_128_CBC_SHA (2F)
- RSA_WITH_3DES_EDE_CBC_SHA (0A)
只需将它们与您的 Web 服务的密码相匹配并启用必要的功能...