Сообщение об ошибке «file_get_contents(): операция SSL не удалась с кодом 1. Сообщения об ошибках openssl: error:1416f086:ssl ro» обычно появляется, когда возникает проблема с проверкой сертификата SSL во время запроса HTTPS с использованием file_get_contents()
в PHP. Эта ошибка обычно возникает, когда сертификат SSL не может быть проверен или когда расширение OpenSSL настроено неправильно.
Чтобы решить эту проблему, вы можете попробовать несколько способов:
Метод 1: отключить проверку SSL (не рекомендуется для производственных сред)
$context = stream_context_create([
"ssl" => [
"verify_peer" => false,
"verify_peer_name" => false,
],
]);
$response = file_get_contents("https://example.com", false, $context);
Метод 2. Укажите действительный путь к пакету сертификатов SSL
$context = stream_context_create([
"ssl" => [
"cafile" => "/path/to/certificate_bundle.crt",
],
]);
$response = file_get_contents("https://example.com", false, $context);
Метод 3. Обновление конфигурации OpenSSL
// Set the path to the OpenSSL configuration file
putenv("OPENSSL_CONF=/path/to/openssl.cnf");
$response = file_get_contents("https://example.com");
Метод 4. Используйте cURL вместо file_get_contents()
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://example.com");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$response = curl_exec($ch);
curl_close($ch);
Эти методы предоставляют различные подходы к устранению ошибки SSL. Однако важно отметить, что отключение проверки SSL или ее полный обход может поставить под угрозу безопасность вашего приложения. Рекомендуется убедиться, что ваши SSL-сертификаты правильно установлены и настроены.