Lorsque vous rencontrez l'erreur « Échec de l'activation du chiffrement » lors de l'utilisation de file_get_contents() avec OPENSSL, il est crucial d'enquêter le problème sous-jacent.
Identification de la cause première
Le journal des erreurs fourni suggère un délai d'attente lors de l'initialisation du chiffrement. Mais le problème réside peut-être ailleurs. Une cause possible est que le site Web utilise une version SSL non prise en charge, telle que SSLv3.
Solution utilisant cURL
Pour contourner les limitations de file_get_contents() et activer la prise en charge SSLv3 , il est recommandé d'utiliser cURL à la place :
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"));
Cette solution définit explicitement la version SSL sur v3, permettant à curl de gérer la négociation SSL a réussi.
Considérations supplémentaires pour les utilisateurs Windows
Pour les utilisateurs Windows, il peut également être nécessaire de spécifier l'emplacement des certificats racine pour curl. Ceci peut être réalisé par :
curl_setopt($ch, CURLOPT_CAINFO, __DIR__ . "/certs/cacert.pem");
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
En définissant l'option CURLOPT_SSL_VERIFYPEER sur true, curl vérifiera le certificat du homologue par rapport aux certificats racine spécifiés.
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