4

libcurl 可以通过 using 获取证书信息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,它将立即停止并尝试获取证书信息。但这没有用。

4

1 回答 1

2

You can accomplish this by using the CURLOPT_SSL_CTX_FUNCTION to install a callback function when the SSL_CTX gets created. From that CURL callback, you can install your own verify function callback using the regular OpenSSL API SSL_CTX_set_cert_verify_callback().

The CURL web site provides an example.

于 2013-09-20T19:52:15.237 回答