-
Sale ! Hébergement/ Domaine
- E-mail
- Sécurité
-
Site web
- Création sites web
- Scripts de réservation
- Other
- E-Marketing
-
Cloud/ Serveur
Vous écrivez une requête cURL vers une destination sécurisée (HTTPS) et vous voyez ce message d'erreur redouté apparaître dans curl_error (): Problème de certificat SSL: impossible d'obtenir le certificat d'émetteur local
Peu importe les changements que vous apportez à votre requête cURL ou combien de fois vous vérifiez que vous avez l'URL correcte ou combien de vos cheveux restants vous retirez, rien ne change - ce même message d'erreur ennuyeux ....
Bien que ce soit techniquement un message d'erreur clair et détaillé, si vous ne savez pas ce que cela signifie ou ce qu'il vous dit, ce n'est pas très amical ... Alors laissez-moi vous expliquer.
Vous faites une demande à une source sécurisée via HTTPS. Cette destination s'attend à ce que vous partagiez certaines informations d'identification indiquant que vous êtes ce que vous dites être (ou du moins quelque chose comme ça). Mettez plus techniquement - vous devez envoyer avec votre demande un certificat SSL. Heureusement, c'est quelque chose que nous définissons dans la configuration de votre serveur et que vous n'avez donc pas besoin de spécifier sur chaque demande. Il y a juste quelques étapes pour accomplir ceci.
Copiez le contenu de cette URL et enregistrez-le sur votre serveur. Vous pouvez vraiment l'enregistrer à n'importe quelle destination, mais quelque part près du niveau supérieur du serveur est très bien.
https://raw.githubusercontent.com/bagder/ca-bundle/master/ca-bundle.crt
Dans le cas où j'ai rencontré ce problème aujourd'hui, j'utilisais une installation XAMPP hébergée localement, j'ai donc choisi ce chemin:
C:/xampp/htdocs/_certs/ca-bundle.crt
1 |
C:/xampp/htdocs/_certs/ca-bundle.crt |
Vous devez maintenant modifier votre fichier php.ini pour identifier l'emplacement de ce fichier. Si vous utilisez XAMP, vous pouvez accéder au fichier php.ini à partir du bouton Config du panneau de configuration XAMP. D'autres serveurs ont parfois ce fichier dans des endroits différents, mais souvent il se trouve quelque part dans le répertoire / etc.
[CA Certs] curl.cainfo="C:/xampp/htdocs/_certs/ca-bundle.crt" openssl.cafile="C:/xampp/htdocs/_certs/ca-bundle.crt"
1 2 3 |
[CA Certs] curl.cainfo="C:/xampp/htdocs/_certs/ca-bundle.crt" openssl.cafile="C:/xampp/htdocs/_certs/ca-bundle.crt" |
Évidemment, vous devrez mettre à jour le chemin pour correspondre à l'endroit où vous avez enregistré votre fichier.
Une fois que vous avez enregistré le fichier php.ini, vous avez une étape à suivre.
Chaque serveur peut être légèrement différent sur la façon de déclencher le redémarrage de PHP (les hôtes partagés peuvent être plus compliqués) mais vous devrez redémarrer PHP pour que ce changement soit reconnu. Dans XAMP, éteignez simplement Apache, puis rallumez-le via le panneau de contrôle XAMP. Sur beaucoup de serveurs Linux, vous pouvez essayer cette commande.
service php5-fpm restart
1 |
service php5-fpm restart |
Et c'est tout! Avec PHP redémarré, vous pouvez maintenant réessayer votre demande cURL et être heureux de voir une demande réelle envoyée et j'espère qu'avec aucun autre problème vous verrez une réponse valide !!!