Maison >développement back-end >tutoriel php >Comment gérer l'incapacité de PHP à obtenir des données après l'installation du certificat SSL sur IIS
Comment gérer l'incapacité de PHP à obtenir des données après l'installation du certificat SSL sur IIS
Ces dernières années, avec la prise de conscience croissante de la sécurité des réseaux, l'installation de certificats SSL est devenue de plus en plus importante. Dans l'environnement Windows, de nombreux sites Web utilisent IIS comme serveur Web, et PHP est également largement utilisé comme langage de script côté serveur. Cependant, après l'installation du certificat SSL, il peut arriver que PHP ne puisse pas obtenir de données, ce qui peut entraîner des anomalies dans le service du site Web. Cet article propose une solution à ce problème et fournit des exemples de code détaillés.
Analyse des problèmes :
Dans l'environnement Windows, notamment après l'installation du certificat SSL sur le serveur IIS, PHP peut rencontrer des problèmes lors de la demande de ressources HTTPS externes. En effet, PHP ne prend pas en charge le protocole SSL/TLS par défaut, ce qui entraîne l'impossibilité de vérifier correctement le certificat SSL. Dans ce cas, un message d'erreur du type « Erreur cURL 60 : problème de certificat SSL : impossible d'obtenir le certificat de l'émetteur local » apparaît généralement.
Solution :
Afin de résoudre le problème selon lequel PHP ne peut pas obtenir de données après l'installation du certificat SSL sur IIS, nous pouvons le gérer en suivant les étapes suivantes :
Tout d'abord, nous devons télécharger la racine du certificat SSL Le fichier de certificat peut être téléchargé depuis le site officiel de l'autorité de certification SSL et enregistré dans le répertoire spécifié sur le serveur.
Ensuite, nous devons configurer le fichier php.ini de PHP, activer l'extension SSL et définir le chemin du fichier de certificat racine. Ouvrez le fichier php.ini, recherchez les deux lignes de configuration suivantes et assurez-vous que la configuration est correcte :
extension=php_openssl.dll curl.cainfo = "C:/path/to/your/cacert.pem"
Parmi elles, "C:/path/to/your/cacert.pem" est le chemin d'accès à la racine fichier de certificat.
En PHP, la bibliothèque cURL est généralement utilisée pour les requêtes HTTP, y compris les requêtes HTTPS. En modifiant la configuration de cURL, nous pouvons lui faire valider correctement les certificats SSL lors de la demande de ressources HTTPS. Voici un exemple de code simple :
$ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'https://example.com/api'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true); curl_setopt($ch, CURLOPT_CAINFO, 'C:/path/to/your/cacert.pem'); $result = curl_exec($ch); curl_close($ch); echo $result;
Dans ce code, nous vérifions le certificat SSL en définissant CURLOPT_SSL_VERIFYPEER, CURLOPT_CAINFO spécifie le chemin d'accès au fichier de certificat racine.
Enfin, nous pouvons tester si le code modifié peut obtenir avec succès les ressources HTTPS. Cela peut être vérifié en visitant une URL HTTPS et en obtenant les données.
Résumé :
Grâce aux étapes ci-dessus, nous pouvons résoudre le problème selon lequel PHP ne peut pas obtenir de données après l'installation du certificat SSL sur IIS. En configurant le fichier php.ini et en utilisant la bibliothèque cURL, nous pouvons faire en sorte que PHP vérifie correctement le certificat SSL et demande avec succès les ressources HTTPS. Dans les applications réelles, veuillez ajuster le code de manière flexible en fonction de la situation spécifique et garantir la validité du certificat SSL.
J'espère que cet article pourra aider les lecteurs à résoudre des problèmes similaires et à assurer la sécurité et le fonctionnement normal du site Web.
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!