+212662161818 Du Lundi au Samedi / 8h à  21h

Comment réparer "problème de certificat SSL: impossible d'obtenir le certificat de l'émetteur local"

Retour

Comment réparer "problème de certificat SSL: impossible d'obtenir le certificat de l'émetteur local"

Le scénario

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 ....

La Solution

 

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.

Acquérir le bundle SSL ca-bundle.crt

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

  Mettez à jour le fichier php.ini pour connaître le chemin d'accès à votre fichier 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.

Ajoutez ou mettez à jour ces lignes dans votre fichier:

[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.

Redémarrer PHP

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 !!!

 

commander