Maison >développement back-end >tutoriel php >Comment résoudre les erreurs de délai d'attente SSL et d'activation de chiffrement en PHP pour 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...
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>
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 :
<code class="php">curl_setopt($ch, CURLOPT_CAINFO, __DIR__ . "/certs/cacert.pem");</code>
<code class="php">curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);</code>
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!