По какой-то причине я не могу использовать CURL с HTTPS. Все работало нормально, пока я не обновил библиотеки curl. Теперь я получаю такой ответ при попытке выполнить запросы CURL: Проблема с сертификатом SSL CA (путь? Права доступа?)
Следуя опубликованным здесь предложениям по связанным вопросам, я попытался сделать следующее:
Отключить проверку для хоста и однорангового узла
curl_setopt($cHandler, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($cHandler, CURLOPT_SSL_VERIFYPEER, true);
Включите
CURLOPT_SSL_VERIFYPEER
и укажите на cacert.pem, загруженный с http://curl.haxx.se/docs/caextract.htmlcurl_setopt($cHandler, CURLOPT_SSL_VERIFYPEER, true); curl_setopt($cHandler, CURLOPT_CAINFO, getcwd() . "/positiveSSL.ca-bundle");
Я также попытался сделать то же самое с положительнымSSL.ca-bundle, который был предоставлен как сертификат CA пакета для сервера, к которому я пытаюсь подключиться.
Отредактируйте настройки php ini с помощью
curl.cainfo=cacert.pem
(файл в том же каталоге и доступен через apache)Переименовать
/etc/pki/nssdb
в/etc/pki/nssdb.old
К сожалению, ни один из перечисленных выше способов не может решить мою проблему, и я постоянно получаю сообщение «Проблема с сертификатом SSL CA» (путь? Права доступа?).
И эта проверка мне вообще не нужна (я знаю о проблемах безопасности).
Есть ли у кого-нибудь другие предложения?
ОБНОВИТЬ
После обновления до последних библиотек и перезапуска всего окна, а не только apache, который я делал, похоже, теперь снова работает !!!
Ответы:
Согласно документации: для проверки сертификата узла или узла вам необходимо указать альтернативные сертификаты с помощью
CURLOPT_CAINFO
параметра, или каталог сертификатов может быть указан с помощьюCURLOPT_CAPATH
параметра.Также посмотрите на
CURLOPT_SSL_VERIFYHOST:
источник
SSL verification disabled
)У нас была такая же проблема на машине CentOS7. Отключение
VERIFYHOST
VERIFYPEER
не решило проблему, у нас больше не было ошибки cURL, но ответ по-прежнему был недействительным. Выполнениеwget
по той же ссылке, что и cURL, также привело к ошибке сертификата.-> Наше решение также заключалось в перезагрузке VPS, это решило проблему, и мы смогли снова выполнить запрос.
Нам показалось, что это проблема повреждения памяти. Перезагрузка VPS снова перезагрузила библиотеку в памяти, и теперь она работает. Поэтому, если вышеуказанное решение
@clover
не работает, попробуйте перезагрузить компьютер.источник