Lors de la tentative d'utilisation de cURL pour envoyer une requête à une URL nécessitant SSL, un message d'erreur indiquant un "auto-signé certificat dans la chaîne de certificats" peut être rencontré.
Cette erreur se produit car cURL n'est pas en mesure de vérifier le certificat SSL présenté par le serveur distant. Cela peut se produire si le certificat est auto-signé, ce qui signifie qu'il n'est pas émis par une autorité de certification (CA) de confiance.
Pour résoudre ce problème, vous pouvez désactiver manuellement la vérification du certificat SSL de cURL. Cependant, cela n'est pas recommandé car cela peut compromettre la sécurité de votre application.
Au lieu de cela, vous devez vous assurer que l'installation PHP utilisée par cURL dispose d'un ensemble valide de certificats racine d'autorité de certification. Ce bundle est utilisé par cURL pour vérifier l'authenticité du certificat SSL du serveur.
Vous pouvez télécharger un bundle de certificat racine CA à jour à partir d'ici : http://curl.haxx.se/docs/ caextract.html
Une fois téléchargé, configurez PHP pour utiliser le bundle en définissant l'option curl.cainfo dans php.ini sur le chemin absolu du certificat fichier.
curl.cainfo = <absolute_path_to>/cacert.pem
Vous pouvez également configurer le certificat CA au moment de l'exécution à l'aide de l'option CURLOPT_CAINFO :
curl_setopt($ch, CURLOPT_CAINFO, dirname(__FILE__)."/cacert.pem");
En fournissant un ensemble de certificats racine CA valide, cURL pourra vérifier le certificat SSL du serveur et établissez une connexion sécurisée.
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!