Страница 1 из 1

Обновление корневых CA

Добавлено: 08 сен 2014, 23:30
Подлый Б.
Здравствуйте!
Столкнулся с тем, что при обращении по https с помощью curl к некоторому сайту (vk.com на секундочку) вываливается ошибка "SSL certificate problem: self signed certificate in certificate chain"
Известно, что можно обойти эту проблему, выставив CURLOPT_SSL_VERIFYPEER=false, однако такое решение идеологически неверно, ибо сводит безопасность https к нулю.
Другое решение проблемы - обновить список корневых сертификатов. Разработчики curl предоставляют свежий список (http://curl.haxx.se/docs/sslcerts.html). Но мне никак не удаётся понять, откуда curl в данной сборке PHP берёт корневые сертификаты, поэтому не могу их заменить.
Кто-нибудь знает, как с этим справиться?

Windows 7, Open Server 1.5.1, PHP любой версии,

P.S. На линуксе (причём какой-то старой сборке PHP) проблема не возникает.

Добавлено: 09 сен 2014, 00:44
Dragon_Knight
Ну получаете сертификат у регистратора и подсовываете его в cURL через CURLOPT_CAINFO... Как-то так:
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_CAINFO, '/path/to/cacert.pem');

Добавлено: 09 сен 2014, 08:00
Asmodey
Подлый Б. писал(а):ибо сводит безопасность https к нулю.
С чего Вы это взяли? Он их просто не верифицирует, но вполне себе пользует.
В чём разница верификации со слитым ручками и положенным рядышком (как предлагают выше)?