2010-12-07 139 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