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()安装自己的验证函数回调.