我有一个使用 OpenSSL 的 C 客户端,当使用在服务器上的 SSL_do_handshake() 调用期间在服务器端验证失败的证书时,该客户端测试失败。当应用程序使用 TLS 1.2 时,当服务器调用 SSL_do_handshake() 作为失败返回值时,服务器上的 SSL_do_handshake() 失败将报告给客户端。
将我的应用程序升级到 OpenSSL 1.1.1 和 TLS 1.3 时,我注意到虽然服务器上仍然发生验证错误,但不再将其报告回客户端。
我知道握手协议作为 TLS 1.3 的一部分被完全重写,但似乎有了所有可用的回调,我应该能够在客户端以某种方式确定身份验证失败,而不必尝试编写数据到服务器。
还有其他人遇到过这种情况吗?他们可以推荐一条前进的道路吗?