gpt4 book ai didi

ssl - 如何调试和修复间歇性 SSL 'connection reset by peer' 错误?

转载 作者:太空宇宙 更新时间:2023-11-03 12:53:51 25 4
gpt4 key购买 nike

当通过 HTTPS 连接到服务器 (Windows/IIS) 时,我们的客户端 (CentOS) 偶尔会(百分之一)出现错误。

错误是:SSL: Connection reset by peer

运行 openssl s_client -connect example.com:443 -prexit 99% 的时间都有效,但有时返回 write:errno=104 确认连接重置问题。

有趣的是,当连接重置并失败时,握手的大小不同(更小),但我看不到如何真正看到握手。

一个成功的连接是:SSL 握手已读取 5308 字节并写入 319 字节

一个失败的连接是:SSL handshake has read 5249 bytes and written 198 bytes

始终使用相同的协议(protocol) (TLS) 和密码。

服务器端,Windows 事件日志中的错误是:生成致命警报并发送到远程端点。这可能会导致连接终止。 TLS 协议(protocol)定义的 fatal error 代码为 20。Windows SChannel 错误状态为 960。

fatal error 代码 20 是 收到了一条 MAC 不正确的记录。此消息始终是致命的。

任何人都可以帮助进一步调试吗?由于这只是一个偶然的问题,我正在努力思考为什么会发生。谢谢!

最佳答案

不是应用程序错误,但很可能是基础架构中的低级错误。不特定于 SSL,而是特定于面向连接的套接字。数据包 TTL 到期、网络路由更改或许多其他。写得好的套接字代码总是会在失败前重试几次。这很难调试,因为它通常在短时间内不可重复。

很多年前,这个错误让我抓狂。尽我所能追踪它,甚至写了一个监视器来遍历系统的网络图,以确保图中的每个节点都正常运行并正确响应。大约一年后,更换子网上的交换机后,问题就消失了。开关靠近应用程序,而不是数据中心图表上的节点。

关于ssl - 如何调试和修复间歇性 SSL 'connection reset by peer' 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39076041/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com