Что это означает и что означает:
Следующий код указывает cURL НЕ проверять правильность сертификатов безопасности.Следовательно, ошибка исчезает.
$opts[CURLOPT_SSL_VERIFYPEER] = false;
$opts[CURLOPT_SSL_VERIFYHOST] = 2;
При подключении к удаленному серверу по протоколу SSL их сертификат может быть недействительным, срок его действия или не подписан распознанным центром сертификации.Обычно cURL проверяет его.
CURLOPT_SSL_VERIFYHOST:
- 1: проверить наличие общего имени в сертификате SSL-партнера.
- 2: проверить наличие общего имени, а также убедиться, что оно совпадает с указанным именем хоста.
CURLOPT_SSL_VERIFYPEER: FALSE, чтобы остановить CURL от проверкисертификат сверстника.Альтернативные сертификаты для проверки могут быть указаны с помощью параметра CURLOPT_CAINFO, или каталог сертификатов может быть указан с помощью параметра CURLOPT_CAPATH
.CURLOPT_SSL_VERIFYHOST также может быть ИСТИНА или ЛОЖЬ, если CURLOPT_SSL_VERIFYPEER отключен (по умолчанию 2).
Как правильно включить и проверить:
Для правильной проверки нам нужноубедитесь, что представленный нам сертификат является реальным.Мы делаем это, сравнивая его с сертификатом, которому мы разумно * доверяем.
Если удаленный ресурс защищен сертификатом, выданным одним из главных ЦС, таким как Verisign, GeoTrust и др., Вы можете безопасно сравнить его с ЦС Mozilla.комплект сертификатов, который вы можете получить по http://curl.haxx.se/docs/caextract.html
Сохраните файл cacert.pem где-нибудь на вашем сервере и установите следующие параметры в вашем скрипте.
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, TRUE);
curl_setopt ($ch, CURLOPT_CAINFO, "pathto/cacert.pem");
Если вы подключаетесь кресурс, защищенный самозаверяющим сертификатом, все, что вам нужно сделать, это получить копию сертификата в формате PEM и добавить ее в файл cacert.pem приведенного выше абзаца.