Разрешение «file_get_contents(): операция SSL завершилась с ошибкой с кодом 1. Ошибка openssl» в PHP

Сообщение об ошибке «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-сертификаты правильно установлены и настроены.