Почему php требует ssl сертификат?

На компе стоит сервер.

При таком раскладе
<?php
file_get_contents('https://vk.com');
?>


вот такая ошибка

Warning: file_get_contents(): SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed in /Applications/AMPPS/www/pf.loc/test.php on line 2

Warning: file_get_contents(): Failed to enable crypto in /Applications/AMPPS/www/pf.loc/test.php on line 2

Warning: file_get_contents(https://vk.com): failed to open stream: operation failed in /Applications/AMPPS/www/pf.loc/test.php on line 2

Знаю, что такого быть не должно, так как на другом сервере все работало.

в php.ini стоит extension=openssl.so
  • Вопрос задан
  • 23159 просмотров
Решения вопроса 2
jone21
@jone21
Кратко не получится
$arrContextOptions=array(
    "ssl"=>array(
        "verify_peer"=>false,
        "verify_peer_name"=>false,
    ),
);  
$sw=file_get_contents(ЛИНК, false, stream_context_create($arrContextOptions));
Ответ написан
kowap
@kowap Автор вопроса
Пользуюсь этим продуктом www.ampps.com . Сменил php с 5,6 на 5,5 и все нормально
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@seopublic
function file_get_contents_curl( $url ) {

  $ch = curl_init();

  curl_setopt( $ch, CURLOPT_AUTOREFERER, TRUE );
  curl_setopt( $ch, CURLOPT_HEADER, 0 );
  curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 );
  curl_setopt( $ch, CURLOPT_URL, $url );
  curl_setopt( $ch, CURLOPT_FOLLOWLOCATION, TRUE );

  $data = curl_exec( $ch );
  curl_close( $ch );

  return $data;

}


Затем просто используйте file_get_contents_curl вместо file_get_contents всякий раз, когда вы вызываете URL-адрес, начинающийся с https.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы