2010-12-07 140 views
2

这个问题类似于另一个one, concerning pyCURLCURLpp:TLS握手错误

我有以下错误,当我发送POST请求到一个安全的网址,使用CURLpp https://stackoverflow.com/questions/1942719/pycurl-tls-handshake-error

好了,根据答案previous question,我应该在openSSL中使用libcurl。如果我运行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。所以如果我试图直接用命令行发送完全相同的请求,它可以正常工作,并且我在命令输出中看到了我期待的结果。

因此,原来当我切换到CURLpp,它使用GNUTLS而不是OpenSSL的。 有什么我必须配置,为了指定我想用CURLpp的openSSL?

回答

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扩展,协商失败密码等)配置错误的结果。

+0

确实,我已经安装了`libcurl-gnutls.so libcurl-gnutls.so.4.1.1`。我需要了解如何让CURLpp不使用它们。 – Arthur 2010-12-07 21:33:03