2015-07-07 1 views
1

Я хочу сделать тесты https, используя libcurl и openssl в C++. У меня есть следующий код:Ошибка сертификата сервера. CAfile: ca.pem CRLfile: none

curl_easy_setopt(mEasyHandle, CURLOPT_SSL_VERIFYPEER, 1L); 
curl_easy_setopt(mEasyHandle, CURLOPT_SSL_VERIFYHOST, 2L); 
result = curl_easy_setopt(mEasyHandle, CURLOPT_CAINFO , "ca.pem"); 

У меня есть сервер Windows, который прослушивает 192.168.0.101:4443. При запуске программы из Visual Studio проверка сертификата работает, но в Linux я получаю сообщение об ошибке server certificate verification failed. CAfile: ca.pem CRLfile: none.

В ca.pem Я разместил контент, сгенерированный в сертификате сервера (тестирование на Windows работает, на Linux нет).

* Trying 192.168.0.101... 
* Connected to 192.168.0.101 (192.168.0.101) port 4443 (#0) 
* found 1 certificates in ca.pem 
* server certificate verification failed. CAfile: ca.pem CRLfile: none 
* Closing connection 0 

UPDATE:

У меня есть папка /etc/ssl/certs, которая содержит много ча CERTS файлов. Я скопировал ca.pem чтобы /etc/ssl/certs и запустить update-ca-certificates который произвел выход:

Updating certificates in /etc/ssl/certs... 
0 added, 0 removed; done. Running hooks in /etc/ca-certificates/update.d....done. 
+0

Вы уверены, что это порт '4443', а не' 443' (который является портом HTTPS по умолчанию)? –

+0

У меня есть пользовательский сервер, который прослушивает порт 4443. –

+0

Попробуйте этот http://askubuntu.com/questions/570888/download-01-org-certificate-verification-failed-crlfile-missing. Очевидно, заменяя 'download.01.org' удаленным именем хоста. – marekful

ответ

0

Я решил эту. На самом деле проблема с сертификатом. Код работал, но метка времени на машине была до того, как был создан сертификат.

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

  • Нет связанных вопросов^_^