CJD*_*CJD 5 ssl openssl ssl-certificate
在通过 HTTPS 连接到服务器 (Windows/IIS) 时,我们的客户端 (CentOS) 上偶尔会出现(100 分之一)错误。
错误是:SSL: Connection reset by peer。
运行openssl s_client -connect example.com:443 -prexit99% 的时间都可以运行,但有时会返回write:errno=104确认连接重置问题。
有趣的是,当连接重置并失败时,握手的大小不同(较小),但我看不到如何实际看到握手。
成功的连接是: SSL handshake has read 5308 bytes and written 319 bytes
失败的连接是: SSL handshake has read 5249 bytes and written 198 bytes
始终使用相同的协议 (TLS) 和密码。
服务器端,Windows 事件日志中的错误是: A fatal alert was generated and sent to the remote endpoint. This may result in termination of the connection. The TLS protocol defined fatal error code is 20. The Windows SChannel error state is 960.
致命错误代码 20 是Received a record with an incorrect MAC. This message is always fatal..
任何人都可以帮助进一步调试吗?由于这只是偶尔的问题,我正在努力思考为什么会发生这种情况。谢谢!
小智 2
不是应用程序错误,但很可能是基础设施中的低级错误。并非特定于 SSL,而是特定于面向连接的套接字。数据包 TTL 过期、网络路由更改等等。编写良好的套接字代码在失败之前总是会重试几次。这非常难以调试,因为它通常在短时间内不可重复。
许多年前,这个错误让我发疯。我尽一切努力来追踪它,甚至编写了一个监视器来遍历系统的网络图,以确保图的每个节点都正常运行并正确响应。大约一年后,更换子网上的交换机后,问题消失了。交换机靠近应用程序,而不是数据中心图表上的节点。
| 归档时间: |
|
| 查看次数: |
15591 次 |
| 最近记录: |