c ++ libCurl: как принять истекший сертификат с помощью libCurl - PullRequest
0 голосов
/ 03 октября 2018

Я работаю над встроенным приложением Linux, которое действует как клиент и получает данные с сервера https с помощью libCurl.Требование моего приложения - принять просроченный сертификат и продолжить установление соединения.

Я не смог найти ни одной такой опции, которую можно установить с помощью curl_easy_setopt, так как мы можем игнорировать -
- проверку имени сертификата с помощью host => установка CURLOPT_SSL_VERIFYHOST на 0
- проверка подлинности сертификата однорангового узла => установка CURLOPT_SSL_VERIFYPEER на FALSE

Любой другой выход, который я могу попробовать, заставить его работать.

1 Ответ

0 голосов
/ 03 октября 2018

Вы можете установить обратный вызов, используя CURLOPT_SSL_CTX_FUNCTION (см. Пример на https://curl.haxx.se/libcurl/c/cacertinmem.html), где вы можете манипулировать контекстом SSL, очищать ошибки и т. Д.

Возможно, этого будет недостаточно, вы можете поэкспериментировать снастройка некоторых параметров самого openssl, см. https://www.openssl.org/docs/man1.1.0/ssl/SSL_CTX_set_verify.html.

Я не уверен, достаточно ли установить SSL_VERIFY_NONE или вам действительно нужно предоставить функцию обратного вызова проверки, которая говорит да всем.

Я не проверял это, и я не уверен, что это на самом деле будет работать, но вы можете попробовать.

...