Я пытаюсь подключиться к серверу FreeBSD с Ma c OS X (High Sierra) через HTTPS. Мы используем самозаверяющий сертификат. Я загружаю сертификат с помощью команды
/usr/bin/openssl s_client -tls1_2 -connect 192.168.5.140:443
Код, который я использую для подключения:
curl_easy_setopt(curl, CURLOPT_URL, Serveraddress);
curl_easy_setopt(curl, CURLOPT_CONNECTTIMEOUT, 60);
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, request);
curl_easy_setopt(curl, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1_2);
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 1L);
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 1L);
curl_easy_setopt(curl,CURLOPT_SSLCERTTYPE,"PEM");
curl_easy_setopt(curl,CURLOPT_CAINFO, <CertificatePath>);
Тот же код работает на другом компьютере (OS X Yosemite). Единственное отличие, которое я могу найти, это то, что при загрузке сертификата с помощью вышеупомянутой команды я получаю следующие сообщения:
На машине, где работает код:
No client certificate CA names sent
Peer signing digest: SHA512
Server Temp Key: DH, 2048 bits
В машина, на которой не работает код:
No client certificate CA names sent
Как решить эту проблему? Я попытался указать для Verify-Peer и Verify-Host значение 0, это не сработало.
Я попробовал описанное решение Здесь . Это не сработало.
Оцените помощь.