"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment résoudre l'erreur « Avertissement : échec de l'activation du chiffrement » lors de l'accès aux URL HTTPS avec OpenSSL ?

Comment résoudre l'erreur « Avertissement : échec de l'activation du chiffrement » lors de l'accès aux URL HTTPS avec OpenSSL ?

Publié le 2024-11-02
Parcourir:861

How to Resolve \

Avertissement OPENSSL : « Échec de l'activation du chiffrement » pour une URL HTTPS spécifique

Ce problème survient lors de la tentative d'accès à des URL HTTPS spécifiques à l'aide de file_get_contents (), malgré l'activation de l'extension openssl. La fonction renvoie le message d'erreur : "Avertissement : échec de l'activation du chiffrement", indiquant que les opérations cryptographiques nécessaires ne peuvent pas être effectuées.

La cause première de ce problème réside dans le protocole de sécurité utilisé par le site Web problématique. Dans ce cas, le site Web utilise SSLv3, qui est un protocole obsolète et vulnérable. La configuration par défaut d'openssl ne prend pas en charge SSLv3 par défaut pour des raisons de sécurité.

Pour résoudre ce problème et récupérer avec succès le contenu du site Web, une solution de contournement est nécessaire. Une option consiste à utiliser la fonction curl_setopt() pour spécifier manuellement la version SSL à utiliser. Ceci peut être réalisé en définissant l'option CURLOPT_SSLVERSION sur 3, ce qui correspond à 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"));

Un autre problème potentiel pouvant survenir sous Windows est le manque d'accès à certificats racines. Pour résoudre ce problème, il est recommandé de télécharger les certificats racine et de spécifier manuellement leur emplacement à l'aide des options CURLOPT_CAINFO et CURLOPT_SSL_VERIFYPEER.

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

En mettant en œuvre ces solutions de contournement, il devient possible d'accéder et de récupérer avec succès le contenu du site Web problématique à l'aide d'openssl.

Déclaration de sortie Cet article est réimprimé à l'adresse : 1729647257. En cas d'infraction, veuillez contacter [email protected] pour le supprimer.
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3