我有一个使用TLS加密的C ++ TCP客户端/服务器应用程序。 在服务器端,我正在使用带有对等验证的openSSL。 在客户端,我正在使用libcurl。
一切正常,除非客户端使用的证书无法通过验证。这是客户端使用错误证书时的过程摘要。
在服务器端,SSL_accept
返回由于验证而导致的失败代码,这是预期的。
在客户端,执行以下操作:
curl_easy_setopt(curl, CURLOPT_CONNECT_ONLY, 1L);
r = curl_easy_perform(curl);
if (r != CURLE_OK) {
// ERROR
} else {
// OK
}
“ r”返回“ CURLE_OK”,并且仅当客户端尝试发送数据并失败时,我的连接才会失败。我的问题是,为什么在第一个“ curl_easy_perform”(即“ CONNECT_ONLY”)之后它不会失败。我是否需要为libcurl设置其他参数?我宁愿继续使用libcurl而不是编写自己的OpenSSL客户端。