2012-05-01 121 views
4

libcurl可以使用CURLINFO_CERTINFO獲取證書信息,但該信息必須在curl_easy_perform之後,這意味着您需要首先登錄到FTP服務器而不驗證證書。libcurl:有沒有辦法在不登錄的情況下獲得FTPS證書?

FileZilla等FTP軟件獲取證書,然後在發送用戶名和密碼之前要求用戶信任它們。

下面的OpenSSL命令也可以得到沒有用戶名或密碼的證書:

$ openssl s_client -showcerts -connect ftp.godaddy.com:21 -starttls ftp

我也用CURLOPT_VERBOSE監視FTP命令嘗試。在AUTH TLS命令正常後,它會立即停止並嘗試獲取證書信息。但那並不奏效。

回答

2

當創建SSL_CTX時,您可以通過使用CURLOPT_SSL_CTX_FUNCTION來安裝回調函數來實現此目的。從該CURL回調中,您可以使用常規OpenSSL API SSL_CTX_set_cert_verify_callback()安裝自己的驗證函數回調。

CURL web site規定an example

相關問題