【问题标题】:CURLpp: TLS Handshake ErrorCURLpp:TLS 握手错误
【发布时间】:2011-05-21 20:15:41
【问题描述】:

这个问题和另一个one, concerning pyCURL类似

当我使用 CURLpp https://*.com/questions/1942719/pycurl-tls-handshake-error 向安全 URL 发送发布请求时出现以下错误

好的,所以根据previous question 的答案,我应该将libcurl 与openSSL 一起使用。如果我运行curl -v,我会得到:

curl 7.19.7 (i486-pc-linux-gnu) libcurl/7.19.7 OpenSSL/0.9.8k zlib/1.2.3.3 libidn/1.15 Protocols: tftp ftp telnet dict ldap ldaps http file https ftps Features: GSS-Negotiate IDN IPv6 Largefile NTLM SSL libz

所以我应该使用 openSSL,而不是看到 gnuTLS。因此,如果我尝试使用命令行直接通过 curl 发送相同的请求,它可以正常工作,并且我会在命令输出中看到我期望的结果。

所以当我切换到 CURLpp 时,它使用 gnuTLS,而不是 openSSL。 有什么我必须配置的,以便指定我想要使用 CURLpp 的 openSSL 吗?

【问题讨论】:

    标签: c++ curl openssl curlpp


    【解决方案1】:

    cURLpp 只是 libcURL 的一个包装器,它并不规定 libcURL 使用哪种 SSL 实现。
    我不确定您是如何得出when I switch to CURLpp, it uses gnuTLS, instead of openSSL 结论的,但我怀疑您安装了多个 libcurl.so,一个 curl 使用,另一个您的应用正在使用(通过 cURLpp)。

    附带说明,TLS fatal alert ... received(在链接问题中提到)可能是 服务器端 配置错误的结果(服务器名称 TLS 扩展无效、无法协商密码等) .

    【讨论】:

    • 确实,我已经安装了libcurl-gnutls.so libcurl-gnutls.so.4.1.1 。我需要找出如何让 CURLpp 不使用它们。
    • 我已经安装了 libcurl4-openssl-dev,并重新安装了 curlpp,我不再有错误了。谢谢
    最近更新 更多