Cuando se encuentra el error "Error al habilitar criptografía" al usar file_get_contents() con OPENSSL, es fundamental investigar el problema subyacente.
Identificación de la causa raíz
El registro de errores proporcionado sugiere un tiempo de espera durante la inicialización criptográfica. Sin embargo, el problema puede estar en otra parte. Una posible causa es que el sitio web utilice una versión SSL no compatible, como SSLv3.
Solución usando cURL
Para evitar las limitaciones de file_get_contents() y habilitar la compatibilidad con SSLv3 , se recomienda utilizar cURL en su lugar:
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"));
Esta solución establece explícitamente la versión SSL en v3, lo que permite que curl maneje el protocolo de enlace SSL se realizó correctamente.
Consideraciones adicionales para usuarios de Windows
Para usuarios de Windows, también puede ser necesario especificar la ubicación de los certificados raíz para curl. Esto se puede lograr mediante:
curl_setopt($ch, CURLOPT_CAINFO, __DIR__ . "/certs/cacert.pem");
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
Al establecer la opción CURLOPT_SSL_VERIFYPEER en verdadero, curl verificará el certificado del par con los certificados raíz especificados.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3