Почему PHP cURL выдает ошибку Problem with the SSL CA cert?

Подскажите, пожалуйста, cURL в PHP при попытке соединения с хостом по https упорно выдает ошибку «Problem with the SSL CA cert (path? access rights?)». Сертификат по адресу, к которому обращаюсь, непроверенный, но я же отключаю в опциях необходимость проверки сертификата.

Вот код:

if($cu=curl_init('https://example.com')) {
    curl_setopt($cu, CURLOPT_RETURNTRANSFER, TRUE);
    curl_setopt($cu, CURLOPT_SSL_VERIFYHOST, 0);
    curl_setopt($cu, CURLOPT_SSL_VERIFYPEER, 0);
    curl_setopt($cu, CURLOPT_SSLVERSION, 3);
    curl_setopt($cu, CURLOPT_TIMEOUT, 30);
    $res = curl_exec($cu);
    curl_close($cu);
}


Вместо https://example.com указываю свой хост. По http все работает, а вот по https выдает эту ошибку.

Подскажите, пожалуйста, в какую сторону капать.
  • Вопрос задан
  • 7092 просмотра
Решения вопроса 1
@scopenco
Для тех у кого используется схема nginx+php-fpm в chroot-е нужно скопировать
/usr/lib64/libnsspem.so
/usr/lib64/libsoftokn3.so

в chroot/lib64 каталог.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
savostin
@savostin
Еще один программист
попробуйте:
yum reinstall openssl ca-certificates -y
Ответ написан
savostin
@savostin
Еще один программист
Так же есть вариант такой:
wget http://curl.haxx.se/ca/cacert.pem
cp cacert.pem /usr/local/etc/cacert.pem
echo "curl.cainfo = \"/usr/local/etc/cacert.pem\"" >> /etc/php.ini
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы