J’utilise git sous Windows. J’ai installé le paquet msysgit. Mon référentiel de test dispose d’un certificate auto-signé sur le serveur. Je peux accéder et utiliser le référentiel en utilisant http sans problèmes. Passer à https donne l’erreur “Problème de certificate SSL: impossible d’obtenir un certificate d’émetteur local”.
Le certificate auto-signé est installé dans les autorités de certificateion racines de confiance de ma machine Windows 7. Je peux naviguer jusqu’à l’URL du référentiel https dans Internet Explorer sans messages d’erreur.
Ce blog http://blogs.msdn.com/b/phkelley/archive/2014/01/20/adding-a-corporate-or-self-signed-certificatee-authority-to-git-exe-s-store. aspx a expliqué que curl n’utilise pas le magasin de certificates de la machine client. J’ai suivi les conseils de l’article sur le blog pour créer une copie privée de curl-ca-bundle.crt et configurer git pour l’utiliser. Je suis sûr que git utilise ma copie. Si je renomme la copie git se plaint que le fichier est manquant.
J’ai collé dans mon certificate, comme mentionné dans le billet de blog, je reçois toujours le message “impossible d’obtenir un certificate d’émetteur local”.
J’ai vérifié que git fonctionnait toujours en clonant un repository GitHub via https.
La seule chose que je vois comme différente de l’article de blog est que mon certificate EST la racine – il n’ya pas de chaîne pour l’atteindre. Mon certificate venait à l’origine en cliquant sur le lien IIS8 IIS Manager ‘Créer un certificate auto-signé’. Peut-être que cela fait un certificate différent de ce que Curl attend.
Comment puis-je obtenir git / curl pour accepter le certificate auto-signé?
Ouvrez Git Bash et exécutez la commande si vous souhaitez désactiver complètement la vérification SSL.
git config --global http.sslVerify false
Remarque: cette solution peut vous ouvrir à des attaques telles que des attaques de type man-in-the-middle . Par conséquent, réactivez la vérification dès que possible:
git config --global http.sslVerify true
J’ai eu ce problème aussi. Dans mon cas, j’essayais d’obtenir un hook Git après réception pour mettre à jour une copie de travail sur un serveur à chaque poussée. Je ai essayé de suivre les instructions dans le blog que vous avez lié. Ne fonctionnait pas pour moi aussi et le remplacement des parameters par utilisateur ne semblait pas fonctionner non plus.
J’ai fini par désactiver la vérification SSL (comme le mentionne l’article) pour Git dans son ensemble. Ce n’est pas la solution parfaite, mais cela fonctionnera jusqu’à ce que je puisse en trouver un meilleur.
J’ai édité le fichier texte de configuration Git (avec mon application neutre de fin de ligne préférée comme Notepad ++) situé à:
C: \ Program Files (x86) \ Git \ etc \ gitconfig
Dans le bloc [http], j’ai ajouté une option pour désactiver sslVerify. Cela ressemblait à ça quand j’ai fini:
[http] sslVerify = false sslCAinfo = /bin/curl-ca-bundle.crt
Cela a fait l’affaire.
REMARQUE: cette opération désactive la vérification SSL et n’est pas recommandée comme solution à long terme.
La réponse à cette question Utilisation de makecert pour le développement SSL a résolu ce problème pour moi.
Je ne sais pas pourquoi, mais le certificate créé par le simple lien «Créer un certificate auto-signé» dans le Gestionnaire des services Internet ne fait pas l’affaire. J’ai suivi l’approche dans la question liée de la création et de l’installation d’une racine CA auto-signée; puis en l’utilisant pour émettre un certificate d’authentification serveur pour mon serveur. Je les ai tous deux installés dans IIS.
Cela donne à ma situation la même chose que le post de blog référencé dans la question initiale. Une fois le certificate racine copié / collé dans curl-ca-bundle.crt, le combo git / curl était satisfait.
Je pense que kiddailey était assez proche, mais je ne désactiverais pas la vérification SSL mais plutôt plutôt que de fournir le certificate local:
Dans le fichier de configuration Git
[http] sslCAinfo = /bin/curl-ca-bundle.crt
Ou via la ligne de commande:
git config --global http.sslCAinfo /bin/curl-ca-bundle.crt
J’ai également fait face à ce problème. Et finalement résolu en obtenant des conseils de cette mise à jour de blog MSDN
En fait, vous devez append le certificate dans le fichier de certificates de git curl-ca-bundel.cert qui réside dans le répertoire Git \ bin.
Pas
Enfin, vérifiez le statut. Veuillez noter que la sauvegarde du fichier curl-ca-bundle.crt avant édition rest sur le côté sécurisé.
J’ai juste eu le même problème mais en utilisant sourcetree sur windows Même pas pour GIT normal sur Windows aussi. En suivant les étapes suivantes, j’ai pu résoudre ce problème.
Cela devrait résoudre votre problème avec les certificates auto-signés et en utilisant GIT.
J’ai essayé d’utiliser la configuration “http.sslcapath” mais cela n’a pas fonctionné. De plus, si je n’incluais pas la chaîne entière dans le fichier de certificates, cela échouerait également. Si quelqu’un a des conseils sur ceux-ci s’il vous plaît faites le moi savoir car ce qui précède doit être répété pour une nouvelle installation.
S’il s’agit du GIT du système, vous pouvez utiliser les options de l’onglet TOOLS -> options pour utiliser le GIT du système, ce qui résout également le problème dans sourcetree.
Pour éviter de désactiver entièrement la vérification SSL ou de dupliquer / pirater le fichier de certificate CA utilisé par git, vous pouvez exporter la chaîne de certificates de l’hôte dans un fichier et faire en sorte que git l’utilise:
git config --global http.https://the.host.com/.sslCAInfo c:/users/me/the.host.com.cer
Si cela ne fonctionne pas, vous pouvez désactiver la vérification SSL uniquement pour l’hôte:
git config --global http.https://the.host.com/.sslVerify false
Remarque: Soumis à des attaques possibles par l’homme lors des attaques du milieu lorsque la vérification SSL est désactivée.
Dans le cas de référentiels github (ou de tout autre certificate non signé) , en choisissant ci-dessous lors de l’installation de Git-on-windows, le problème a été résolu.
J’ai déjà eu ce problème, et le résoudre en utilisant la configuration suivante.
[http "https://your.domain"] sslCAInfo=/path/to/your/domain/priviate-certificatee
Depuis git 2.3.1, vous pouvez mettre https://your.domain
après http pour indiquer que le certificate suivant est uniquement pour lui.
C:\Program Files\Git\bin
et à C:\Program Files\Git\mingw64\bin
Ensuite, essayez quelque chose comme: git clone https://github.com/heroku/node-js-getting-started.git
Utilisez cette commande avant d’exécuter la mise à jour / installation du composeur:
git config --global http.sslverify false