Github: erreur de clonage de mon référentiel privé


155

J'essaie de cloner mon projet GitHub à l'aide de l'URL https, mais cela échoue avec une erreur:

$ git clone https://foo@github.com/foo/foo-private.git
Cloning into foo-private...
Password:
error: error setting certificate verify locations:
  CAfile: /bin/curl-ca-bundle.crt
  CApath: none
 while accessing https://foo@github.com/foo/foo-private.git/info/refs

fatal: HTTP request failed

Qu'est-ce que je fais mal?

Réponses:


289

J'ai vu cela sur Windows, avec msysgit 1.7.2.3. Vous devez fixer le chemin vers bin / curl-ca-bundle.crt . J'ai dû spécifier le chemin absolu, en utilisant des barres obliques inverses:

git config --system http.sslcainfo "C: \ Program Files (x86) \ git \ bin \ curl-ca-bundle.crt"

ou - pas vraiment recommandé - vous pouvez choisir de désactiver complètement les vérifications SSL en exécutant:

git config --system http.sslverify false

Dans les deux cas, cela entraînera des modifications du fichier [git-install-dir] / etc / gitconfig, qui peut également être édité directement.

(Solutions originales trouvées sur http://github.com/blog/642-smart-http-support )


1
Dans mon cas, j'avais besoin d'utiliser le délimiteur de répertoire pour Windows, je veux dire, je dois utiliser le "\" (windows) au lieu de "/" (unix) pour séparer les répertoires dans le chemin.
Victor

Comme l'écriture de l'article original ci-dessous fonctionne pour moi Essayez-le sur un référentiel public: $ git clone github.com/schacon/grack.git Pour les dépôts privés, ou pour avoir un accès push sur votre référentiel, vous pouvez le cloner de cette façon: $ git clone username@github.com/username/project.git Merci :)
J4cK

13
Pour les références futures, le chemin semble avoir changé pour moi en "C: \ Program Files (x86) \ Git \ mingw32 \ ssl \ certs \ ca-bundle.crt"
Ben

3
Le chemin sur ma machine 64 bits est "C: \ Program Files \ Git \ mingw64 \ ssl \ certs \ ca-bundle.crt"
Kamaraju Kusumanchi

3
Sur ma machine 64 bits, a git config --global http.sslcainfo "C:\Program Files\Git\mingw64\ssl\certs\ca-bundle.crt"fonctionné, je ne peux pas dire pourquoi global alors que le système a échoué.
semako

76

J'ai résolu le problème d'installation du Git à partir de: https://git-for-windows.github.io/ Localisez le chemin du fichier cert:

D: \ Program Files \ Git \ mingw64 \ ssl \ certs \ ca-bundle.crt

Configurez le chemin Git:

git config --system http.sslcainfo "D: \ Program Files \ Git \ mingw64 \ ssl \ certs \ ca-bundle.crt"

Réessayer


13
J'ai error: could not lock config file C:\Program Files\Git\mingw64/etc/gitconfig: Permission denied. Ran en "C:\Program Files\Git\git-bash.exe"tant qu'administrateur et essayé à nouveau et cela a fonctionné. Merci!
AXO

Meilleure explication
Kasim Rangwala

2
Je viens d'installer Git pour Windows 2.13.2 et j'ai rencontré ce problème en essayant de pousser vers la télécommande. J'ai trouvé que le fichier cert était dans un endroit similaire:C:\Program Files\Git\mingw64\ssl\certs\ca-bundle.crt
Simon Tewsi

1
cela a fonctionné pour moi, je n'ai installé le Git qu'en utilisant le lien que vous avez partagé et cela l'a résolu pour moi, merci
Sunny Okoro Awa

J'avais installé GIT sur un répertoire spécifié lors de l'installation, donc j'ai dû spécifier le chemin MINGW64 correct selon cette installation
gargkshitiz

21

Si vous utilisez MSYS2 ...

Installez simplement les packages de certificats avec les commandes suivantes:

32 bits

pacman -S mingw-w64-i686-ca-certificates ca-certificates

64 bits

pacman -S mingw-w64-x86_64-ca-certificates ca-certificates

1
Un de plus. Merci. Je ne me souviens pas avoir à faire ce msys2 32 bits, mais les circonstances peuvent différer.
bvj

1
Merci, je confirme que c'est la chose à faire en utilisant msys2 64 bits :-D
FabienRohrer

1
Il se peut que le fichier /usr/ssl/certs/ca-bundle.crt soit vide, il suffit de réinstaller ca-certificate à nouveau
Daniel YC Lin

Pas pour Windows: $ pacman -S mingw-w64-x86_64-ca-certificates ca-certificates bash: pacman: command not found
belgoros

@Javix C'est pourquoi il est dit "Si vous utilisez MSYS2". La commande pacman n'est pas disponible par défaut sous Windows, mais elle est disponible si MSYS2 est installé.
CoolOppo

12

Si vous utilisiez Cygwin, vous pouvez installer le package ca-certificates avec apt-cyg :

wget rawgit.com/transcode-open/apt-cyg/master/apt-cyg
install apt-cyg /usr/local/bin
apt-cyg install ca-certificates

Comment installer un package cygwin à partir de la ligne de commande?


1
Zut. J'ai cherché si longtemps. Cela a fonctionné également sur mac. Merci pour le partage.
Phlow

1
Sur Cygwin, ça a marché pour moigit config --system http.sslcainfo /usr/ssl/certs/ca-bundle.crt
ATorras

9
git config --global http.sslverify "false" 

Résoudra le problème. Après cela, une fenêtre pop-up apparaît pour entrer votre nom d'utilisateur et votre mot de passe


5
Vous voudrez peut-être mentionner les ramifications de sécurité de ceci. Cela semble être une idée terrible, en particulier au niveau mondial.
C. Helling

A travaillé sur HPC pour moi
mmann1123

6

RÉSOLU: j'ai eu cette erreur lorsque j'ai installé une mise à jour du programme d'installation de Windows Git. Ce qui s'est passé, c'est que je ne l'ai pas installé avec les droits d'administrateur, donc Git a été installé dans "C: \ Users \ mon_nom \ AppData \ Local \ Programs" au lieu de "C: \ program Files". réinstaller Git en tant qu'administrateur a permis de le mettre dans C: \ program Files et tout s'est à nouveau bien passé!


Pour ce que cela vaut, la désinstallation et la réinstallation de GitHub Desktop ont également résolu ce problème pour moi, bien qu'il utilise toujours le dossier AppData.
Ben Collier

5

Cela a fonctionné pour moi (j'utilise Manjaro linux). J'exécute la cmd pour afficher les certificats CA:

$ curl-config --ca
**/etc/ssl/certs/ca-certificates.crt**

Mais en fait, j'ai trouvé les certificats sur le chemin:

**/etc/ca-certificates/extracted/ca-bundle.trust.crt**

Ajoutez ensuite la configuration dans ~ / .gitconfig (si elle n'existe pas, créez-la):

**vim ~/.gitconfig**
[http]
    sslVerify = true
    sslCAinfo = /etc/ca-certificates/extracted/ca-bundle.trust.crt

[user]
    email = <email of github account>
    name = <username of github account>

Ça marche!

.rbenv]$ git pull

remote: Counting objects: 70, done.
remote: Compressing objects: 100% (47/47), done.
remote: Total 70 (delta 39), reused 12 (delta 12), pack-reused 6
Unpacking objects: 100% (70/70), done.
From https://github.com/sstephenson/rbenv
   c43928a..efb187f  master     -> origin/master
 + 37ec781...7e57b52 user-gems  -> origin/user-gems  (forced update)
Updating c43928a..efb187f
Fast-forward
 libexec/rbenv-init         |  4 ++--
 libexec/rbenv-version-file |  1 +
 test/init.bats             |  2 +-
 test/test_helper.bash      | 25 +++++++++++++++----------
 4 files changed, 19 insertions(+), 13 deletions(-)

1
A travaillé pour moi sur archlinux!
lucasem

4

git config --system http.sslcainfo /bin/curl-ca-bundle.crt

Cela marche. Vous n'êtes pas obligé de donner le chemin complet.


3

J'ai fait face à cela pendant que git pull. Pour le mien, j'ai édité le fichier de configuration global git qui a résolu le problème.

Accédez à votre dossier personnel et ouvrez le fichier .gitconfig. Généralement C: \ Users \ .gitconfig

Si le fichier n'est pas là, créez-le

[http]
sslcainfo = E: \ systools \ git-1.8.5.2 \ bin \ curl-ca-bundle.crt

Là, vous devez donner votre propre chemin d'installation git. J'ai utilisé la version portable de git ici.

Ensuite, git clone / pull fonctionnera.


1
Vous devez utiliser des caractères d'échappement doubles:E:\\systools...
HappyCactus

MAIS, assurez-vous de NE PAS mettre le chemin entre guillemets. super-contre-intuitif. "C:\\folder\\file"est mauvais, C:\\folder\\fileest bon. Je veux récupérer mon heure.
increddibelly

2

Si vous utilisez le shell de commande Git qui s'installe avec l'application GitHub pour Windows, ce problème et divers autres peuvent apparaître après une mise à jour. Démarrez simplement l'application Windows Git Hub et fermez-la à nouveau. Le shell fonctionnera à nouveau correctement. Le problème est que la mise à jour ne se termine pas tant que l'application Windows n'est pas exécutée. Le simple fait d'utiliser le shell sur son ne déclenche pas la fin de la mise à jour.


2

J'ai vu cela sur mon Github pour Windows.

Je recommande de désinstaller Github pour Windows et de le réinstaller.

Avant cela, j'ai essayé plusieurs méthodes sans succès, mais cette solution a fonctionné pour moi!


1

Sur Windows utilisant msysgit, j'ai eu cette erreur et la cause était mes ajouts de nos certificats proxy d'entreprise.

Si vous modifiez votre curl-ca-bundle.crt, vous devez vous assurer de vos fins de ligne. Dans le cas du bundle curl-ca, vous devez utiliser des fins de ligne de style Linux.

> git ls-remote --tags --heads https://github.com/oblador/angular-scroll.git
fatal: unable to access 'https://github.com/oblador/angular-scroll.git/': error setting certificate verify locations:
  CAfile: C:\Program Files (x86)\Git\bin\curl-ca-bundle.crt
  CApath: none

Vous pouvez utiliser notepad ++ pour convertir les fins de ligne en Linux (saut de ligne).


1

En passant, ce problème peut survenir sous Windows si l'utilisateur qui tente d'utiliser git est différent de l'utilisateur qui l'a installé. L'erreur peut indiquer que git ne peut pas accéder aux fichiers de certificat. L'installation de git en tant qu'administrateur et l'utilisation de la réponse de @ rogertoday ont résolu mon problème.


1

J'ai trouvé une bonne solution pour ajouter / mettre à jour les certificats CA sur RHEL / CentOS 6, qui est la cause première du problème signalé.

Puisqu'elles sont devenues des distributions obsolètes, les autorités cacert de ce système n'ont pas été mises à jour avant l'exécution de la commande sudo yum update.

Je n'ai pas réalisé le problème jusqu'à ce que le mode GIT_CURL_VERBOSE affiche le problème du chemin cacert.


0

Sous Linux, j'ai eu cette erreur et je l'ai corrigée en exécutant sudo update-ca-certificates.


Vous devez expliquer ce que fait cette commande et pourquoi cela aide. Publier des commandes brutes sans explication n'est pas une bonne idée, surtout si vous avez besoin d'un accès root.
Peanut

0

Pour moi, ce qui a résolu le problème, c'est lorsque, sur ma boîte Windows 10, j'ai essayé de désinstaller git et de réintaller, en utilisant Windows Cmd par défaut et non Git Bash

Ouvrez CMD et exécutez ce qui suit

//Once installed try to resintall the bin folder 
git config --system http.sslcainfo \bin/curl-ca-bundle.crt

//disable ssl verification
git config --global http.sslverify "false"

//Then try to clone repo again
git clone git@github.com:account/someproject.git

0

Si quelqu'un d'autre est confronté à ce problème dans Git pour Windows et n'a curl-ca-bundle.crtnulle part sur votre système même après la réinstallation, voici le processus que j'ai suivi:

  1. Téléchargez la dernière version de curl ici: miroir de téléchargement de curl
  2. Extraire et naviguer vers curl-**.**.*/libdans la ligne de commande
  3. Courir ./mk-ca-bundle.prl
  4. Copiez ca-bundle.crtdans votre chemin git et mettez à jour la configuration comme indiqué dans d'autres réponses

Criez à l'essentiel pour m'aider à faire l'installation.


0

J'ai résolu ce problème sur un Windows Server 2016 en le réinstallant et en choisissant «bibliothèque Windows Secure Channel native» à l'étape d'installation «Choisir le backend de transport HTTPS».


0

La solution qui fonctionne pour moi dans Windows 64bits est la suivante

git config --system http.sslverify false


0

Dans mon cas win10, j'ai deux versions de.gitconfig

  • le premier est en C:\Program Files\Git\etc
  • le second est en C:\Users\<user>

La commande

git config --system http.sslcainfo "C:\Program Files\Git\mingw64\ssl\certs\ca-bundle.crt"

modifie en effet C:\Program Files\Git\etc, mais git utilise en quelque sorte config dansC:\Users\<user>

Donc, avec le bloc-notes, j'ai changé le deuxième .gitconfiget git a finalement pris la bonne configuration et s'est mis au travail.


-1

J'ai pu résoudre ce problème avec la commande suivante.

git config --system http.sslverify false


Cette réponse serait meilleure si elle discutait des ramifications de sécurité de ce paramètre et fournissait également d'autres moyens de résoudre le problème. Cependant, la réponse actuellement acceptée le fait et plus encore ...
chwarr

-1

J'ai reçu cette erreur après avoir déplacé git sur des disques durs. Suppression et réinstallation dans le nouvel emplacement des choses corrigées


-1

Sur git pour Windows, vous pouvez également réinstaller et sélectionner le certificat natif Windows méthode de validation de (OpenSSL est par défaut). Cela ignorera la vérification OpenSSL et utilisera à la place la vérification native de Windows, qui ne nécessite pas la maintenance d'un outil séparé (OpenSSL) et de certificats.

A parfaitement fonctionné pour moi :)


-2

La commande suivante

git clone git://github.com/username/projectname.git

a fonctionné pour mes besoins, mais je suppose que vous voulez plus qu'un accès en lecture seule, non?

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.