Comment résoudre les erreurs de délai d'attente SSL et d'activation de chiffrement en PHP pour file_get_contents() ?

Linda Hamilton
Libérer: 2024-10-23 11:52:30
original
958 Les gens l'ont consulté

How to Resolve SSL Timeout and Crypto Enabling Errors in PHP for file_get_contents()?

Erreurs d'expiration du délai SSL et d'activation du chiffrement résolues pour file_get_contents()

En PHP, lors de l'utilisation de file_get_contents() pour récupérer le contenu des pages HTTPS, il est possible de rencontrer des erreurs liées à l'activation du chiffrement SSL. L'une de ces erreurs est :

Warning: file_get_contents(): SSL: crypto enabling timeout...
Warning: file_get_contents(): Failed to enable crypto...
Copier après la connexion

Ce problème survient lorsque la configuration PHP ne dispose pas des paramètres nécessaires pour activer le chiffrement pour les connexions SSL. Pour remédier à cela, la solution suivante est proposée :

Utiliser cURL avec SSLv3

Au lieu de file_get_contents(), la bibliothèque cURL peut être utilisée, ce qui permet un meilleur contrôle sur Paramètres SSL. En définissant l'option CURLOPT_SSLVERSION sur 3, SSLv3 sera activé, résolvant potentiellement le problème :

<code class="php"><?php
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"));
?></code>
Copier après la connexion

Configuration de cURL pour la vérification SSL

Dans certains cas, le problème peut également provenir de certificats racine manquants ou incomplets. Pour garantir une vérification SSL appropriée, les étapes suivantes sont recommandées :

  1. Téléchargez les certificats racine.
  2. Spécifiez le chemin d'accès au fichier de certificat à l'aide de CURLOPT_CAINFO :
<code class="php">curl_setopt($ch, CURLOPT_CAINFO, __DIR__ . "/certs/cacert.pem");</code>
Copier après la connexion
  1. Activez la vérification SSL à l'aide de CURLOPT_SSL_VERIFYPEER :
<code class="php">curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);</code>
Copier après la connexion

En implémentant ces solutions, vous pouvez résoudre le délai d'expiration SSL et les erreurs d'activation de chiffrement associées à file_get_contents() en PHP, vous permettant pour récupérer le contenu des pages HTTPS sans autres complications.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!