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

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命令正常后,它将立即停止并尝试获取证书信息.但那没用.

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

CURL web site提供an example.

点赞