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://[email protected]/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://[email protected]/foo/foo-private.git/info/refs

fatal: HTTP request failed

Qu'est-ce que je fais mal?

Mot
la source

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 )

mstrap
la source
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 [email protected]/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

rogertoday
la source
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
CoolOppo
la source
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?

Jiangwei Yu
la source
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

Abu bakr
la source
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é!

Louis BAYLE
la source
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(-)
Duy Nguyen
la source
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.

KannarKK
la source
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.

arulraj.net
la source
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.

Paul D
la source
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!

Alisa
la source
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).

Thomas
la source
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.

Maghoumi
la source
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.

SK Venkat
la source
0

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

user5002062
la source
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 [email protected]:account/someproject.git
wushueagle
la source
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.

tordal
la source
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».

Thibault Loison
la source
0

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

git config --system http.sslverify false

Jorge Santos Neill
la source
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.

d0wn
la source
-1

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

git config --system http.sslverify false

Pradeep Kumar C
la source
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

Shane J
la source
-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 :)

Reijin
la source
-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?

Andrew Grimm
la source