При обнаружении ошибки «Не удалось включить шифрование» при использовании file_get_contents() с OPENSSL крайне важно провести расследование. основную проблему.
Определение основной причины
В предоставленном журнале ошибок указано время ожидания во время инициализации шифрования. Однако проблема может заключаться в другом. Одна из возможных причин заключается в том, что на веб-сайте используется неподдерживаемая версия SSL, например SSLv3.
Решение с использованием cURL
Чтобы обойти ограничения file_get_contents() и включить поддержку SSLv3 , вместо этого рекомендуется использовать cURL:
function getSSLPage($url) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_SSLVERSION, 3);
$result = curl_exec($ch);
curl_close($ch);
return $result;
}
var_dump(getSSLPage("https://eresearch.fidelity.com/eresearch/evaluate/analystsOpinionsReport.jhtml?symbols=api"));
Это решение явно устанавливает версию SSL v3, позволяя Curl обрабатывать подтверждение SSL прошло успешно.
Дополнительные рекомендации для пользователей Windows
Пользователям Windows также может потребоваться указать расположение корневых сертификатов для Curl. Этого можно добиться с помощью:
curl_setopt($ch, CURLOPT_CAINFO, __DIR__ . "/certs/cacert.pem");
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
Установив для параметра CURLOPT_SSL_VERIFYPEER значение true, Curl будет проверять сертификат узла по указанным корневым сертификатам.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3