libcurl:有没有办法在没有登录的情况下获取FTPS证书?

时间:2012-05-01 11:59:34

标签: c ftp openssl certificate libcurl

libcurl可以使用CURLINFO_CERTINFO获取证书信息,但该信息必须在curl_easy_perform之后,这意味着您需要先登录FTP服务器而不验证证书。

像FileZilla这样的FTP软件获取证书,然后在发送用户名和密码之前要求用户信任它们。

以下OpenSSL命令也可以获取没有用户名或密码的证书:

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

我也尝试使用CURLOPT_VERBOSE来监控FTP命令。 AUTH TLS命令正常后,它会立即停止并尝试获取证书信息。但那没用。

1 个答案:

答案 0 :(得分:2)

您可以在创建CURLOPT_SSL_CTX_FUNCTION时使用SSL_CTX安装回调函数来完成此操作。从该CURL回调中,您可以使用常规OpenSSL API SSL_CTX_set_cert_verify_callback()安装自己的验证函数回调。

CURL web site提供an example