2012-05-01 5 views
4

libcurl может получить информацию о сертификате с помощью CURLINFO_CERTINFO, но эта информация должна появиться после curl_easy_perform, что означает, что вам необходимо сначала войти на FTP-сервер, не проверив сертификаты.libcurl: Есть ли способ получить сертификаты FTPS без входа?

FTP-программное обеспечение, такое как FileZilla, получает сертификаты, а затем просит пользователя доверять им или нет, перед отправкой имени пользователя и пароля.

Следующая команда OpenSSL также могут получить сертификаты с не имя пользователя или пароль:

$ openssl s_client -showcerts -connect ftp.godaddy.com:21 -starttls ftp

Я также попытался с помощью CURLOPT_VERBOSE контролировать команды FTP. После того, как команда AUTH TLS будет в порядке, она немедленно остановится и попытается получить информацию о сертификате. Но это не сработало.

ответ

2

Вы можете выполнить это, используя CURLOPT_SSL_CTX_FUNCTION для установки функции обратного вызова при создании SSL_CTX. Из этого обратного вызова CURL вы можете установить свою собственную функцию проверки функции проверки, используя обычный OpenSSL API SSL_CTX_set_cert_verify_callback().

CURL web site Предоставляет an example.

Смежные вопросы