J'utilise Git sous Windows. J'ai installé le package msysGit. Mon référentiel de test dispose d'un certificat auto-signé sur le serveur. Je peux accéder et utiliser le référentiel en utilisant HTTP sans problème. Le passage à HTTPS donne l'erreur:
Problème de certificat SSL: impossible d'obtenir le certificat d'émetteur local.
J'ai le certificat auto-signé installé dans les autorités de certification racine de confiance de mon ordinateur client Windows 7. Je peux accéder à l'URL du référentiel HTTPS dans Internet Explorer sans message d'erreur.
Ce billet de blog de Philip Kelley a expliqué que cURL n'utilise pas le magasin de certificats de l'ordinateur client. J'ai suivi les conseils du blog pour créer une copie privée 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 certificat, comme mentionné dans le blog, je reçois toujours le message "impossible d'obtenir le certificat d'émetteur local".
J'ai vérifié que Git fonctionnait toujours en clonant un référentiel GitHub via HTTPS.
La seule chose que je vois qui est différente de l'article de blog est que mon certificat est la racine - il n'y a pas de chaîne pour l'atteindre. Mon certificat provenait à l'origine du clic sur le lien IIS8 IIS Manager «Créer un certificat auto-signé». Peut-être que cela rend un certificat différent d'une manière ou d'une autre de ce à quoi s'attend cURL.
Comment puis-je demander à Git / cURL d'accepter le certificat auto-signé?
{ "strict-ssl": false }
. Ne me remerciez pas, remerciez ce gars: stapp.space/fight-with-2 Je me suis battu avec cette erreur pendant près de 5 heures, tout droit !!Réponses:
Ouvrez Git Bash et exécutez la commande si vous souhaitez désactiver complètement la vérification SSL.
Remarque: Cette solution peut vous ouvrir à des attaques comme les attaques de l'homme du milieu . Par conséquent, réactivez la vérification dès que possible:
la source
git -c http.sslVerify=false clone https://domain.com/path/to/git
Le problème est que git utilise par défaut le backend crypto "Linux".
À partir de Git pour Windows 2.14, vous pouvez maintenant configurer Git pour utiliser SChannel, la couche réseau Windows intégrée comme backend crypto. Cela signifie que vous utiliserez le mécanisme de stockage des certificats Windows et que vous n'avez pas besoin de configurer explicitement le mécanisme de stockage de l'Autorité de certification curl: https://msdn.microsoft.com/en-us/library/windows/desktop/aa380123(v= vs.85) .aspx
Exécutez simplement:
Cela devrait aider.
L'utilisation de schannel est désormais le paramètre standard lors de l'installation de git pour Windows, il est également recommandé de ne pas extraire les référentiels par SSH si possible, car https est plus facile à configurer et moins susceptible d'être bloqué par un pare-feu, cela signifie moins de risques d'échec.
la source
git config --global http.sslCAInfo <my-server-self-signed-cert.pem>
ne pas fonctionner. J'ai configuréhttp.sslCAInfo
pour utiliser un certificat auto-signé pour mon serveur, et c'est la raison (peut-être pas la même qu'OP) que j'ai rencontré "Problème de certificat SSL: impossible d'obtenir le certificat d'émetteur local" lorsque je fais par exemple agit clone https://github.com/Microsoft/vscode.git
. Enfin, j'ai utilisé la réponse de stackoverflow.com/a/47196562/1323552 (Ben PP Tung) pour régler ma configuration sslCAInfo spécifique à mon serveur git pour le résoudre.J'avais aussi ce problème. Dans mon cas, j'essayais d'obtenir un hook Git post-réception pour mettre à jour une copie de travail sur un serveur à chaque push. J'ai essayé de suivre les instructions du blog auquel vous vous êtes connecté. Cela ne fonctionnait pas aussi pour moi et remplacer les paramètres par utilisateur ne semblait pas fonctionner non plus.
J'ai fini par devoir 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 une meilleure.
J'ai édité le fichier texte de configuration Git (avec mon application neutre de fin de ligne préférée comme Notepad ++) située à:
Dans le bloc [http], j'ai ajouté une option pour désactiver sslVerify. Ça ressemblait à ça quand j'avais fini:
Cela a fait l'affaire.
REMARQUE:
Cela désactive la vérification SSL et n'est pas recommandé comme solution à long terme.
Vous pouvez désactiver ce référentiel par qui n'est toujours pas génial, mais localise le paramètre.
Avec l'avènement de LetsEncrypt.org, il est désormais assez simple, automatisé et gratuit de configurer SSL comme alternative aux certificats auto-signés et supprime la nécessité de désactiver sslVerify.
la source
sslCAinfo
entrée de configuration; mais je ne vote pas la réponse car cela n'a pas beaucoup de sens de désactiver définitivement SSL pour git à l'échelle du système (avez-vous essayé de le désactiver à l'échelle du système, puis de le cloner, puis de le réactiver puis de le désactiver dans le config git locale pour le repo nouvellement cloné?).git -c http.sslVerify=false clone https://...
kiddailey, je pense, était assez proche, mais je ne désactiverais pas la vérification ssl, mais plutôt je fournirais simplement le certificat local:
Dans le fichier de configuration Git
Ou via la ligne de commande:
la source
git config --global http.sslCAinfo /usr/ssl/certs/ca-bundle.crt
git config --global http.sslCAinfo /c/Program\ Files\ \(x86\)/Git/bin/curl-ca-bundle.crt
git config --global http.sslCAinfo /opt/local/share/curl/curl-ca-bundle.crt
git config --list --show-origin
pour voir où la configuration http.sslCAinfo est définieJ'ai également fait face à ce problème. Et enfin résolu en obtenant des conseils de ce blog MSDN .
Mettre à jour
En fait, vous devez ajouter le certificat dans le fichier de certificats de git curl-ca-bundel.cert qui réside dans le répertoire Git \ bin.
Pas
Enfin, vérifiez le statut. Veuillez noter que le fichier curl-ca-bundle.crt de sauvegarde avant la modification pour rester du bon côté.
la source
ca-bundle.crt
et être situé dansmingw64\ssl\certs
oumingw32\ssl\certs
.La réponse à cette question à l' aide de makecert pour le développement SSL a résolu ce problème pour moi.
Je ne sais pas pourquoi, mais le certificat créé par le simple lien «Créer un certificat 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 l'utiliser pour émettre un certificat d'authentification de serveur pour mon serveur. J'ai installé les deux dans IIS.
Cela obtient ma situation la même que celle du blog référencée dans la question d'origine. Une fois le certificat racine copié / collé dans curl-ca-bundle.crt, le combo git / curl était satisfait.
la source
Pour éviter de désactiver complètement la vérification ssl ou de dupliquer / pirater le fichier de certificat d'autorité de certification groupé utilisé par git, vous pouvez exporter la chaîne de certificats de l'hôte dans un fichier et faire en sorte que git l'utilise:
Si cela ne fonctionne pas, vous pouvez désactiver la vérification SSL uniquement pour l'hôte:
Remarque: soumis à des attaques possibles de l'homme au milieu lorsque la vérification SSL est désactivée.
la source
--global
option n'est pas nécessaire: si vous omettez--global
, le paramètre ne s'applique qu'à ce dépôt git particulier.Je viens d'avoir le même problème, mais en utilisant sourcetree sur Windows Même étapes pour GIT normal sur Windows également. En suivant les étapes suivantes, j'ai pu résoudre ce problème.
Cela devrait résoudre votre problème avec les certificats 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 toute la chaîne dans le fichier des certificats, cela échouerait également. Si quelqu'un a des pointeurs sur ceux-ci, 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 système, vous pouvez utiliser les options dans TOOLS -> onglet options GIt pour utiliser le GIT système et cela résout ensuite le problème dans sourcetree.
la source
En cas de référentiels github (ou de tout certificat non auto-signé) , en choisissant ci-dessous lors de l'installation de Git-on-windows, vous avez résolu le problème.
la source
J'ai déjà rencontré ce problème et le résoudre à l'aide de la configuration suivante.
[http "https://your.domain"] sslCAInfo=/path/to/your/domain/priviate-certificate
Depuis git 2.3.1, vous pouvez mettre
https://your.domain
après http pour indiquer que le certificat suivant est uniquement pour lui.la source
git config --global http.sslCAInfo <your-server-self-signed-cert.pem>
auparavant (d'où l'erreur "impossible d'obtenir le certificat de l'émetteur local")C:\Program Files\Git\bin
etC:\Program Files\Git\mingw64\bin
Essayez ensuite quelque chose comme:
git clone https://github.com/heroku/node-js-getting-started.git
la source
Une chose qui m'a dérangé était le format du chemin (sur mon PC Windows). J'avais à l'origine ceci:
Mais cela a échoué avec l'erreur "impossible d'obtenir le certificat d'émetteur local".
Ce qui a finalement fonctionné était le suivant:
la source
Dans mon cas, comme j'ai installé le terminal ConEmu pour Windows 7, il crée le
ca-bundle
pendant l'installation àC:\Program Files\Git\mingw64\ssl\certs
.Ainsi, je dois exécuter les commandes suivantes sur le terminal pour le faire fonctionner:
Par conséquent, my
C:\Program Files\Git\etc\gitconfig
contient les éléments suivants:De plus, j'ai choisi la même option que celle mentionnée ici lors de l'installation de Git.
J'espère que cela pourra aider!
la source
Pour résoudre le problème de certificat SSL d' erreur spécifique : impossible d'obtenir le certificat d'émetteur local dans git
J'ai eu le même problème avec les certificats Let's Encrypt.
Un site web avec https dont nous avons juste besoin:
mais git pull dit:
Pour le réparer, nous devons également ajouter:
la source
Utilisez cette commande avant d'exécuter la mise à jour / l'installation de composer:
la source