我正在开发使用 C++(IDE:Qt 创建者)创建的 Windows 桌面应用程序。它有登录面板,我在其中使用 openssl 1.0 库通过 https 连接进行用户验证。应用程序在大多数机器上工作,但我在从几台机器建立 https 连接时也遇到“SSL 握手失败”错误。
我尝试使用wireshark调试错误。我的观察如下:
1) 客户端向服务器发送 [SYN]。
2) 服务器向客户端发送 [SYN,ACK]。
3) 客户端向服务器发送 [ACK]。
4) 客户端向服务器发送消息“Client Hello”。
5) 服务器发送它的公钥和消息“Server Hello, Certificate, Server Hello Done”
6) 客户端发送它的公钥和消息“Client Key Exchange, Change Cipher Spec, Encrypted Handshake Message”
7) 服务器发送加密的握手消息带有消息“Change Cipher Spec, Encrypted Handshake Message”
8) 客户端发送 [FIN,ACK]
9) 服务器发送 [FIN,ACK]
10) 客户端发送 [FIN]
第七步,客户端一收到服务器发来的加密消息,客户端就通过FIN信号发起终止握手。任何想法,为什么客户端在双方交换密钥后会以“SSL 握手失败”的形式断开 ssl 连接?