изменение SSL-сертификатов в другом месте - PullRequest
3 голосов
/ 20 октября 2010

В настоящее время мы читаем из HTTPS, используя cURL.Все отлично работает

Мы создали сертификаты в curl следующим образом:

curl_easy_setopt(curl,CURLOPT_SSLCERTTYPE,"PEM");
curl_easy_setopt(curl,CURLOPT_SSLCERT,"/etc/ssl/certs/abc.cert.pem");

curl_easy_setopt(curl,CURLOPT_SSLKEYTYPE,"PEM");
curl_easy_setopt(curl,CURLOPT_SSLKEY,"/etc/ssl/certs/abc.key.pem");

Теперь мы хотим переместить эти файлы сертификатов в другой каталог.Даже если я изменил путь в приведенных выше командах, он не работает, потому что я думаю, что путь к сертификату жестко закодирован как / etc / ssl в libcurl.

Исходя из поиска в Google, я сначала попытался добавить,

curl_easy_setopt(curl, CURLOPT_CAPATH, "/MyDir/");

, а затем четыре строки с правильным относительным путем.Это не сработало.

Как изменить путь (каталог, в котором хранятся сертификаты) на то, что я хочу.Пример или объяснение будет оценено.

Спасибо

Джеймс

1 Ответ

6 голосов
/ 01 февраля 2011

Нет, в libcurl нет жестко заданных путей для клиентских сертификатов, ваша теория неверна.

Но ваше смешивание опции CURLOPT_SSLCERT (которая предназначена для клиентских сертификатов) и опции CURLOPT_CAPATH (которая относится к сертификатам CA) в этом же вопросе может означать, что вы Я неправильно понял, какие варианты есть на самом деле.

Capath / bundle имеет жестко заданное значение по умолчанию в libcurl, но вы всегда можете установить свой собственный предпочтительный с помощью одной из опций CA *.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...