我们公司目前有一个在 Windows 7 台式计算机上运行的用 VB6 创建的应用程序。此应用程序需要使用 HTTPS 连接到 Web 服务。
由于某种原因,此应用程序无法连接到目标服务器。目标服务器位于 Apache Web 服务器之后,该服务器也充当负载均衡器。
我通过 wire shark 追踪了连接,似乎在 Client Hello 之后服务器响应 [FIN, ACK] 而不是 Server Hello。谁能告诉我问题出在哪里。
客户端问候和服务器 [FIN, ACK] [![客户你好][1]][1] [1]: /image/btXyX.jpg [![在此处输入图片描述][2]][2] [2]: /image/O5WDq.jpg
但是,我们可以在以下场景连接成功
- 如果我们在 Windows 10 下使用相同的应用程序。请注意,在使用 Windows 10 时,我们的 SSL 版本是 TLS1.2。
- 如果应用程序直接连接到应用程序服务器而不是 Apache Web 服务器。在这种情况下,我们的 SSL 协议(protocol)仍然是 TLS1.0
我猜我们需要配置 Web 服务器以允许我们的应用程序连接。我们的管理员告诉我们他们已经激活了 TLS1.0 协议(protocol),所以我现在不完全确定出了什么问题。
为什么服务器关闭了连接,或者我应该检查日志或 Web 服务器配置的哪一部分来找出答案?
请注意,我们知道我们正在为此连接使用 TLS1 协议(protocol),但此应用程序仅供内部使用,其替代品已在开发中。但是,业务需要让这项工作适用于当前环境。
最佳答案
如果服务器不支持“Client Hello”数据包中建议的任何密码套件,它可能会关闭连接。
您可以检查返回的 Cipher-Suite 是否有效(当您使用 Windows10 时),然后研究如何在 Windows7 中启用此 Cipher-Suite
关于apache - 客户端问候后 SSL 握手失败服务器 [FIN, ACK],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43892883/