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

标签 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 命令成功后,它会立即停止并尝试获取证书信息。但这没有用。

最佳答案

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

CURL web site提供 an example .

关于c - libcurl:有没有办法在不登录的情况下获取 FTPS 证书?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10397334/

相关文章:

c - 为什么指针函数总是有 void 返回类型?

c - 两个 double 怎么会是相互冲突的类型呢?

php - 需要基于 Web 的 FTP 帮助

java - 从 Java KS 导出的自签名证书不起作用

c - 如何将二维数组作为参数传递给 C 中的函数

c - C 中的链表操作 Read Proof

ftp - 如何防止文件中出现空行或一行中的所有代码以及如何重新格式化它们?

c# - 如何在不实际下载文件的情况下判断 FTP 上的文件是否与本地文件相同?

C++ 将 TCP 套接字转换为 BIO (OpenSSL)

openssl - 签名证书请求错误 "Expecting trusted request"