"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo resolver el error \"Advertencia: No se pudo habilitar Crypto\" al acceder a URL HTTPS con OpenSSL?

¿Cómo resolver el error \"Advertencia: No se pudo habilitar Crypto\" al acceder a URL HTTPS con OpenSSL?

Publicado el 2024-11-02
Navegar:290

How to Resolve \

Advertencia de OPENSSL: "Error al habilitar criptografía" para una URL HTTPS específica

Este problema surge al intentar acceder a URL HTTPS específicas mediante file_get_contents (), a pesar de haber habilitado la extensión openssl. La función devuelve el mensaje de error: "Advertencia: No se pudo habilitar la criptografía", lo que indica que no se pueden realizar las operaciones criptográficas necesarias.

La causa principal de este problema radica en el protocolo de seguridad utilizado por el sitio web problemático. En este caso, el sitio web utiliza SSLv3, que es un protocolo obsoleto y vulnerable. La configuración predeterminada de openssl no admite SSLv3 de forma predeterminada por razones de seguridad.

Para resolver este problema y recuperar correctamente el contenido del sitio web, es necesaria una solución alternativa. Una opción es utilizar la función curl_setopt() para especificar manualmente la versión SSL que se utilizará. Esto se puede lograr configurando la opción CURLOPT_SSLVERSION en 3, que corresponde a SSLv3.

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"));

Otro problema potencial que puede surgir en Windows es la falta de acceso a certificados raíz. Para solucionar este problema, se recomienda descargar los certificados raíz y especificar manualmente su ubicación usando las opciones CURLOPT_CAINFO y CURLOPT_SSL_VERIFYPEER.

curl_setopt($ch, CURLOPT_CAINFO, __DIR__ . "/certs/cacert.pem");
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);

Al implementar estas soluciones, es posible acceder y recuperar con éxito el contenido del sitio web problemático usando openssl.

Declaración de liberación Este artículo se reimprime en: 1729647257 Si hay alguna infracción, comuníquese con [email protected] para eliminarla.
Último tutorial Más>

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