Почему ошибки curl при обнаружении сертификата ssl работают с перебоями? - PullRequest
1 голос
/ 24 февраля 2012

Я думаю, что теперь хорошо понимаю, почему вам нужно иметь комплект сертификатов ssl при извлечении контента из API-интерфейса https, например Facebook. Но мой вопрос: почему это работает иногда даже без сертификата, а некоторые другие нет? Мне кажется, что у libcurl есть способ решить эту проблему самостоятельно.

Кто-нибудь знает, почему или как это происходит? У кого-нибудь был такой же опыт?

1 Ответ

0 голосов
/ 24 февраля 2012

Поведение cUrl в отношении SSL-сертификатов зависит от опции CURLOPT_SSL_VERIFYPEER.Предполагая, что вы используете PHP, вы можете использовать функцию curl_setopt , чтобы изменить значение этой опции.

У меня есть только поверхностные знания о SSL, но кажется, что cUrl ведет себя следующим образом: 0 означает, что нет проверки, 1 проверяет, является ли сертификат действительным, и 2 проверяет также, выдан ли сертификат на правильныйhostname.

Вы можете «отключить надоедливые ошибки», установив для CURLOPT_SSL_VERIFYPEER значение 0, но это означает, что вы не можете быть уверены, что у вас будет соединение с правильным сервером, поскольку любой может подделать DNS.Это очень опасно.

Официальный php sdk в Facebook предоставляет собственный сертификат, используя CURLOPT_CAINFO , но только когда curl не может самостоятельно подтвердить сертификат.Я не знаю, почему разработчики Facebook SDK сделали это условным;возможно, потому что чтение сертификатов может быть дорогим.

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