Страница 1 из 1

Проблема с SSL сертификатом при попытке скачать страницу через file_get_contents

Добавлено: 30 ноя 2021, 10:47
Rinker
Всем привет. При попытке скачать страницу через php функцию file_get_contents() с сайта на https, возникает предупреждение (ошибка), связанная с сертификатом, и дальше скрипт не выполняется.
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 test.php on line 10
Использую PHP 7.1 x64, Apache 2.4
В конфигурации php стоит настройка:
[openssl]
openssl.cafile="%sprogdir%/modules/php/%phpdriver%/cacert.pem"
Подскажите пожалуйста в чем может быть проблема?

Re: Проблема с SSL сертификатом при попытке скачать страницу через file_get_contents

Добавлено: 30 ноя 2021, 18:45
Максим
Обновите файл cacert.pem и вообще проверьте что он есть у вас в папке с PHP (в последних версиях он лежит тут: /userdata/config/cacert.pem), перезапуститесь. Либо у вашего хоста реально неверный или устаревший сертификат, тогда вам поможет такой код:
<?php
$opt=array(
    "ssl"=>array(
        "verify_peer"=>false,
        "verify_peer_name"=>false,
    ),
);  
$response = file_get_contents("https://xxx", false, stream_context_create($opt));
?>

Re: Проблема с SSL сертификатом при попытке скачать страницу через file_get_contents

Добавлено: 04 дек 2021, 14:40
AlexPavlov1991
Максим писал(а): 30 ноя 2021, 18:45 Обновите файл cacert.pem и вообще проверьте что он есть у вас в папке с PHP (в последних версиях он лежит тут: /userdata/config/cacert.pem), перезапуститесь. Либо у вашего хоста реально неверный или устаревший сертификат, тогда вам поможет такой код:
<?php
$opt=array(
    "ssl"=>array(
        "verify_peer"=>false,
        "verify_peer_name"=>false,
    ),
);  
$response = file_get_contents("https://xxx", false, stream_context_create($opt));
?>
Замена cacert.pem мне помогла при установке yii2 через composer. Но почему в самой свежей версии open server лежит устаревший сертификат?

Re: Проблема с SSL сертификатом при попытке скачать страницу через file_get_contents

Добавлено: 10 янв 2022, 11:34
vavyan
а как обновить файл cacert.pem ?

Re: Проблема с SSL сертификатом при попытке скачать страницу через file_get_contents

Добавлено: 10 янв 2022, 15:43
Максим
AlexPavlov1991 писал(а): 04 дек 2021, 14:40 Замена cacert.pem мне помогла при установке yii2 через composer. Но почему в самой свежей версии open server лежит устаревший сертификат?
В комплекте с Open Server лежит cacert.pem ровно той версии, какая была актуальной на момент выхода обновления OSP.

Re: Проблема с SSL сертификатом при попытке скачать страницу через file_get_contents

Добавлено: 10 янв 2022, 15:44
Максим
vavyan писал(а): 10 янв 2022, 11:34 а как обновить файл cacert.pem ?
Скачайте по ссылке выше и замените в папке /userdata/config.

Re: Проблема с SSL сертификатом при попытке скачать страницу через file_get_contents

Добавлено: 10 янв 2022, 16:17
vavyan
Заменил файл, не помогло.
А вот этот код куда надо вставить? Подскажите пожалуйста.
<?php
$opt=array(
"ssl"=>array(
"verify_peer"=>false,
"verify_peer_name"=>false,
),
);
$response = file_get_contents("https://xxx", false, stream_context_create($opt));
?>
ещё такой вопрос антивирус может блокировать?

Re: Проблема с SSL сертификатом при попытке скачать страницу через file_get_contents

Добавлено: 10 янв 2022, 18:42
SagePointer
vavyan писал(а): 10 янв 2022, 16:17 ещё такой вопрос антивирус может блокировать?
Если антивирус перехватывает и по пути проверяет зашифрованный трафик, то он подменяет при этом сертификаты на свои. В таком случае добавьте руками в cacert.pem корневой сертификат от антивируса, как это сделать - обратитесь к производителю антивируса за инструкциями и сертификатом в формате PEM.
Возможно, антивирус позволяет добавить в исключения проверку трафика отдельных процессов, в таком случае добавьте апач (в случае апача) или php-cgi.exe (в случае nginx)

Re: Проблема с SSL сертификатом при попытке скачать страницу через file_get_contents

Добавлено: 11 янв 2022, 10:12
vavyan
у меня проблема с сертификатом SSL
[Composer\Downloader\TransportException]
curl error 60 while downloading https://getcomposer.org/versions: SSL certificate problem: self signed certificate in certificate chain подскажите пожалуйста уже 3-ий день мучаюсь