使用libcurl的TLS客户端在服务器端客户端验证失败时不会失败

时间:2020-03-10 10:30:01

标签: c++ openssl libcurl

我有一个使用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客户端。

0 个答案:

没有答案