J'ai également rencontré ce problème. J'ai lu ce fil et la plupart des réponses sont informatives mais trop complexes pour moi. Je ne suis pas expérimenté dans les sujets de réseautage, donc cette réponse s'adresse à des gens comme moi.
Dans mon cas, cette erreur s'est produite car je n'ai pas inclus les certificats intermédiaire et racine à côté du certificat que j'utilisais dans ma demande.
Voici ce que j'ai obtenu du fournisseur de certificats SSL:
- abc.crt
- abc.pem
- abc-bunde.crt
Dans le abc.crt
dossier, il n'y avait qu'un seul certificat:
-----BEGIN CERTIFICATE-----
/*certificate content here*/
-----END CERTIFICATE-----
Si je le fournissais dans ce format, le navigateur ne montrerait aucune erreur (Firefox) mais j'obtiendrais curl: (60) SSL certificate : unable to get local issuer certificate
erreur lorsque je la demande de curl.
Pour corriger cette erreur, vérifiez votre abc-bunde.crt
fichier. Vous verrez très probablement quelque chose comme ceci:
-----BEGIN CERTIFICATE-----
/*additional certificate content here*/
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
/*other certificate content here*/
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
/*different certificate content here*/
-----END CERTIFICATE-----
Ce sont vos certificats intermédiaires et racine. Une erreur se produit car ils sont manquants dans le certificat SSL que vous fournissez à votre application.
Pour corriger l'erreur, combinez le contenu de ces deux fichiers dans ce format:
-----BEGIN CERTIFICATE-----
/*certificate content here*/
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
/*additional certificate content here*/
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
/*other certificate content here*/
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
/*different certificate content here*/
-----END CERTIFICATE-----
Notez qu'il n'y a aucun espace entre les certificats, à la fin ou au début du fichier. Une fois que vous avez fourni ce certificat combiné à votre application, votre problème devrait être résolu.