Вихревая ошибка 60, проблема сертификата SSL: сам подписанный сертификат в цепочке сертификата

Я пытаюсь отправить вихревой запрос со своим корректным APP_ID, APP_SECRET и т.д. к

  https://oauth.vk.com/access_token?client_id=APP_ID&client_secret=APP_SECRET&code=7a6fa4dff77a228eeda56603b8f53806c883f011c40b72630bb50df056f6479e52a&redirect_uri=REDIRECT_URI 

Я должен получить access_token от него, но получить ЛОЖЬ и curl_error() распечатайте следующее сообщение иначе:

60: SSL certificate problem: self signed certificate in certificate chain

Мой код:

    // create curl resource
    $ch = curl_init();

    // set url
    curl_setopt($ch, CURLOPT_URL, $url);
    //return the transfer as a string
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

    // $output contains the output string
    $output = curl_exec($ch);
    if ( ! $output) {
        print curl_errno($ch) .': '. curl_error($ch);
    }

    // close curl resource to free up system resources
    curl_close($ch);

    return $output;

Когда я перемещаюсь вручную в ссылку выше, я получаю access_token хорошо. Почему это не работает с завихрением? Справка.

62
задан 1 December 2017 в 21:06

4 ответа

Ответы, предлагающие отключить CURLOPT_SSL_VERIFYPEER, не должны быть приняты. Вопрос, "Почему он не работает с ЗАВИХРЕНИЕМ", и, как правильно указано Праздниками Martijn, это опасно.

ошибка, вероятно, вызывается, не имея актуальный пакет корневых сертификатов CA. Это обычно - текстовый файл с набором криптографических подписей, которые завихряются использование для проверки host’s сертификата SSL.

необходимо удостовериться, что установка PHP имеет один из этих файлов, и что it’s актуальный (иначе загружают тот здесь: http://curl.haxx.se/docs/caextract.html ).

Затем набор в php.ini :

curl.cainfo = <absolute_path_to> cacert.pem

при установке его во времени выполнения используйте:

curl_setopt ($ch, CURLOPT_CAINFO, dirname(__FILE__)."/cacert.pem");
154
ответ дан 31 October 2019 в 13:09

Это обходное решение опасно и не рекомендуемый :

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

Это не хорошая идея отключить проверку однорангового узла SSL. Выполнение так могло бы выставить Ваши запросы взломщикам MITM.

На самом деле, Вам просто нужен актуальный корневой пакет сертификата CA. Установка обновленной так же легка как:

  1. Загружающий актуальный cacert.pem файл от ВИХРЕВОЙ веб-сайт и
  2. Устанавливание пути к нему в Вашем файле php.ini, например, в Windows:

    curl.cainfo=c:\php\cacert.pem

Вот именно!

Остаются безопасными и надежными.

48
ответ дан 31 October 2019 в 13:09

ЭЙ ПАРНИ: ОЧЕНЬ ВАЖНЫЙ! Эта проблема свела меня с ума в течение пары дней, и я не мог выяснить то, что продолжало мое завихрение & установки openssl. Я наконец выяснил, что именно мой ПРОМЕЖУТОЧНЫЙ сертификат (в моем случае, GoDaddy) устарел. Я вернулся к своей godaddy панели администрации SSL, загрузил новый промежуточный сертификат, и проблема исчезла.

я уверен, что это - проблема для некоторых из Вас.

, По-видимому, GoDaddy изменил их промежуточный сертификат в какой-то момент, из-за проблем scurity, поскольку они теперь отображают это предупреждение:

"Убедиться использовать новые промежуточные сертификаты SHA-2, включенные в Ваш загруженный пакет".

Hope это помогает некоторым из Вас, потому что я сходил с ума, и это очистило проблему обо ВСЕХ моих серверах...

3
ответ дан 31 October 2019 в 13:09

Если сертификаты SSL правильно не установлены в Вашей системе, можно получить эту ошибку:

ВИХРЕВАЯ ошибка 60: проблема сертификата SSL: не мог получить локальный сертификат выпускающего.

можно решить эту проблему следующим образом:

Загрузка файл с обновленным списком сертификатов от https://Перемещение curl.haxx.se/ca/cacert.pem

загруженный cacert.pem файл к некоторому безопасному местоположению в Вашей системе

Обновление Ваш php.ini файл и настраивают путь к тому файлу:

2
ответ дан 31 October 2019 в 13:09

Другие вопросы по тегам:

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