Я пытался получить доступ к HTML-странице на своем собственном сервере через HTTPS.Таким образом, скрипт возвращает следующие ошибки:
Версия PHP - 5.6.38
Предупреждение: file_get_contents (): сбой операции SSL с кодом 1. Сообщения об ошибках OpenSSL: ошибка: 14090086: процедуры SSL: ssl3_get_server_certificate: сбой проверки сертификата в /home/user/public_html/index.php в строке 11
Предупреждение: file_get_contents (): не удалось включить шифрование в /home/user/public_html/index.php в строке 11
Предупреждение: file_get_contents (https://myniceurl.com/file.html): не удалось открыть поток: не удалось выполнить операцию в /home/user/public_html/index.php в строке 11
<?php
$contextOptions = [
'ssl' => [
'verify_peer' => true,
'cafile' => '/etc/pki/tls/cert.pem',
]
];
$context = stream_context_create($contextOptions);
$data = file_get_contents('https://myniceurl.com/file.html', false, $context);
IЯ пробовал много решений с разных форумов, но ни один из них не помог. Когда я пытаюсь получить страницу с других сайтов через HTTPS, она работает, даже если я пытался извлечь (через HTTPS) ту же HTML-страницу на моем локальном компьютере, она работала правильно.Я думал, что сервер не может связываться сам. Для целей исследования я изменил HTTP, и он работал правильно.
Я пробовал до сих пор:
- Загруженный сертификатпакет, добавил его
php.ini
файл verify_peer = true
и CAfile для stream_context_create
Я также подтверждаю, что allow_url_fopen
работает.В связи со спецификой этой проблемы;Я не нахожу много информации для помощи.Кто-нибудь из вас сталкивался с чем-то подобным?Благодарю.