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命令正常后,它将立即停止并尝试获取证书信息。但这并不管用。
发布于 2013-09-21 03:52:15
您可以通过在创建SSL_CTX时使用CURLOPT_SSL_CTX_FUNCTION安装回调函数来完成此操作。在这个CURL回调中,您可以使用常规的OpenSSL API SSL_CTX_set_cert_verify_callback()安装自己的验证函数回调。
CURL web site提供an example。
https://stackoverflow.com/questions/10397334
复制相似问题