Avec la sensibilisation croissante à la sécurité du réseau, l'installation de certificats SSL dans les serveurs Web est devenue de plus en plus importante. Dans Windows Environment, IIS est un serveur Web couramment utilisé. Lors du développement d'un site Web avec PHP, PHP peut ne pas être en mesure d'obtenir des ressources HTTPS externes après l'installation d'un certificat SSL. Ce problème se manifeste généralement comme une erreur comme "Curl Error 60: Certificat SSL Problème: Impossible d'obtenir un certificat local émetteur".
Après avoir installé un certificat SSL sur IIS, lorsque PHP demande des ressources HTTPS, il peut ne pas être en mesure de vérifier le certificat SSL car le protocole SSL / TLS n'est pas pris en charge par défaut, ce qui entraîne un échec d'acquisition de données. La clé pour résoudre ce problème est de configurer correctement le chemin de support SSL et de certificat racine de PHP.
Tout d'abord, vous devez télécharger le fichier de certificat racine à partir du site Web de l'autorité de certificat SSL et l'enregistrer dans le répertoire spécifié du serveur.
Ensuite, modifiez le fichier PHP.ini de PHP pour vous assurer que l'extension SSL est activée et que le chemin de certificat racine correct est configuré. Ouvrez le fichier php.ini, recherchez et confirmez les éléments de configuration suivants:
extension=php_openssl.dll
curl.cainfo = "C:/path/to/your/cacert.pem"
Où "c: /path/to/your/cacert.per" doit être remplacé par le chemin de certificat racine réel.
PHP utilise généralement la bibliothèque Curl pour les demandes HTTP. Afin de s'assurer que Curl peut vérifier le certificat SSL lors de l'initiation des demandes HTTPS, une configuration pertinente est requise. Voici un exemple de code:
$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 permettons la vérification du certificat SSL en configurant les options Curl pour assurer la sécurité de la demande.
Une fois la configuration terminée, vous pouvez tester si PHP obtient avec succès des données en visitant un site HTTPS. S'il est configuré correctement, PHP devrait pouvoir accéder normalement aux ressources HTTPS.
Grâce aux étapes ci-dessus, vous pouvez résoudre efficacement le problème que PHP ne peut pas obtenir de données HTTPS après avoir installé des certificats SSL sur IIS. La configuration appropriée du fichier php.ini et l'utilisation de la bibliothèque Curl garantissent que PHP peut vérifier le certificat SSL lors de la réalisation de demandes HTTPS, assurant la sécurité de l'acquisition de données. En fonctionnement réel, veuillez ajuster le chemin de configuration en fonction de la situation réelle et assurer la validité du certificat SSL.
J'espère que cet article vous aidera à résoudre les problèmes connexes et à assurer le fonctionnement sûr et approprié du site Web.