Lorsque j'essaie d'utiliser Curl sur Windows, pour récupérer une https
URL, j'obtiens la redoutable "erreur de connexion (60)".
Le message d'erreur exact est:
curl: (60) Problème de certificat SSL, vérifiez que le certificat CA est OK. Détails:
erreur: 14090086: routines SSL: SSL3_GET_SERVER_CERTIFICATE: échec de la vérification du certificat
Plus de détails ici: http://curl.haxx.se/docs/sslcerts.html
Comment résoudre ça?
Réponses:
Je ne sais pas pourquoi mais je n'ai pas trouvé toutes ces informations au même endroit.
Téléchargez la version compatible avec SSL de Curl, ou créez vous-même la version compatible avec SSL.
Depuis http://curl.haxx.se/docs/caextract.html , téléchargez le fichier cacert.pem.
Placez le curl.exe et le fichier .pem dans le même répertoire.
Renommez le
cacert.pem
fichier encurl-ca-bundle.crt
Relancez curl.exe!
MODIFIER:
Il existe d'autres moyens de résoudre le problème. cette façon particulière repose sur un cacert produit par le fabricant de Curl. Ce n'est peut-être pas ce que vous voulez, et en particulier, cela peut ne pas fonctionner dans les cas où vous disposez d'une autorité de certification moins connue (comme une autorité connue de votre entreprise uniquement) pour le certificat utilisé par le site SSL. . Dans ce cas, vous souhaiterez générer votre propre
curl-ca-bundle.crt
fichier. Vous pouvez utiliser certreq.exe et openssl.exe pour exporter un tel certificat à partir du magasin IE / Windows, puis convertir au format pem, respectivement.la source
curl
marquéWinSSL
sur Windows 7. Selon le lien de documentation, les versions ainsi marquées devraient simplement fonctionner en utilisant les certificats du système. Cependant, j'obtenais l'erreur jusqu'à ce que je suive votre solution.set CURL_CA_BUNDLE=<path to crt>
. Assurez-vous que le format du fichier est correct. Cette méthode fonctionnera même si vous avez plusieurscurl
installations, par exemple git, vagrant ...J'ai créé un script PowerShell capable d'écrire le
ca-cert.crt
fichier en fonction des certificats d'autorité de certification installés dans votre magasin de certification Windows (CurrentUser ou LocalMachine). Exécutez le script comme ceci:Cela créera le
curl-ca-cert.crt
fichier qui devrait être stocké dans le même répertoire quecurl.exe
et vous devriez être en mesure de valider les mêmes sites que vous pouvez dans vos applications Windows (notez que ce fichier peut également être utilisé pargit
).Le script "officiel" peut être trouvé sur GitHub , mais la version initiale est répertoriée ici pour référence:
la source
En fait, nous avons eu le même problème avec Typheous / Ruby. La solution téléchargeait le cacert.pem et l'enregistrait dans C: \ Windows \ System32 (ou où que soit Windows). Après cela, nous définissons une variable d'environnement global comme décrit ici où le "Nom de la variable" doit être
CURL_CA_BUNDLE
et la "Valeur de la variable" le chemin d'accès au fichier%SystemRoot%\System32\cacert.pem
.Lors du démarrage d'une nouvelle session CMD, vous pouvez maintenant simplement utiliser la chose Typheous / Libcurl pour authentifier les connexions SSL. J'ai essayé avec succès cela avec Windows 8.1.
la source