Github: errore nella clonazione del mio repository privato


155

Sto cercando di clonare il mio progetto GitHub usando l'URL https, ma non riesce con un errore:

$ 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

Che cosa sto facendo di sbagliato?

Risposte:


289

Ho visto questo su Windows, con msysgit 1.7.2.3. Devi correggere il percorso di bin / curl-ca-bundle.crt . Ho dovuto specificare il percorso assoluto, usando le barre rovesciate:

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

oppure - non proprio consigliato - puoi scegliere di disattivare completamente i controlli SSL eseguendo:

git config --system http.sslverify false

In entrambi i casi, ciò comporterà modifiche al file [git-install-dir] / etc / gitconfig, che può anche essere modificato direttamente.

(Soluzioni originali disponibili su http://github.com/blog/642-smart-http-support )


1
Nel mio caso avevo bisogno di usare il delimitatore di directory per Windows, voglio dire, devo usare "\" (windows) invece di "/" (unix) per separare le directory nel percorso.
Victor,

Poiché la scrittura originale dei post di seguito funziona per me Provalo su un repository pubblico: $ git clone github.com/schacon/grack.git Per repository privati ​​o per avere accesso push sul tuo repository, puoi clonare in questo modo: $ git clone username@github.com/username/project.git Grazie :)
J4cK

13
Per riferimenti futuri il percorso sembra essere cambiato per me in "C: \ Programmi (x86) \ Git \ mingw32 \ ssl \ certs \ ca-bundle.crt"
Ben

3
Il percorso sul mio computer a 64 bit è "C: \ Programmi \ Git \ mingw64 \ ssl \ certs \ ca-bundle.crt"
Kamaraju Kusumanchi,

3
Sulla mia macchina a 64 bit, ha git config --global http.sslcainfo "C:\Program Files\Git\mingw64\ssl\certs\ca-bundle.crt"funzionato, non posso dire perché globale mentre il sistema ha fallito.
Semako,

76

Ho risolto il problema installando Git da: https://git-for-windows.github.io/ Individua il percorso del file cert:

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

Configura il percorso Git:

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

Riprova


13
Ho capito error: could not lock config file C:\Program Files\Git\mingw64/etc/gitconfig: Permission denied. Ho funzionato "C:\Program Files\Git\git-bash.exe"come amministratore e riprovato e ha funzionato. Grazie!
AXO,

Spiegazione migliore
Kasim Rangwala,

2
Ho appena installato Git per Windows 2.13.2 e ho riscontrato questo problema nel tentativo di eseguire il push sul telecomando. Ho trovato il file cert in una posizione simile:C:\Program Files\Git\mingw64\ssl\certs\ca-bundle.crt
Simon Tewsi,

1
questo ha funzionato per me, ho installato Git solo usando il link che hai condiviso e che l'ha risolto per me, grazie
Sunny Okoro Awa

Avevo installato GIT su una directory specificata durante il tempo di installazione, quindi ho dovuto specificare il percorso MINGW64 corretto secondo tale installazione
gargkshitiz

21

Se si utilizza MSYS2 ...

Basta installare i pacchetti di certificati con i seguenti comandi:

32 bit

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

64 bit

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

1
Più uno. Grazie. Non ricordare di aver dovuto eseguire questo msys2 a 32 bit, ma le circostanze potrebbero essere diverse.
bvj

1
Grazie, confermo che questa è la cosa da fare usando msys2 64 bit :-D
FabienRohrer

1
Potrebbe verificarsi che il file /usr/ssl/certs/ca-bundle.crt sia vuoto, reinstalla nuovamente i certificati ca
Daniel YC Lin

Non per Windows: $ pacman -S mingw-w64-x86_64-ca-certificati ca-certificati bash: pacman: comando non trovato
belgoros

@Javix Ecco perché dice "Se usi MSYS2". Il comando pacman non è disponibile per impostazione predefinita su Windows, ma è disponibile se è installato MSYS2.
CoolOppo,

12

Se si utilizza Cygwin, è possibile installare il pacchetto ca-certificati con apt-cyg :

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

Come installo un pacchetto cygwin dalla riga di comando?


1
Dannazione. Ho cercato così a lungo. Questo ha funzionato anche su Mac. Grazie per aver condiviso.
Phlow

1
Su Cygwin ha funzionato per megit config --system http.sslcainfo /usr/ssl/certs/ca-bundle.crt
ATorras il

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

Risolverà il problema. Successivamente viene visualizzata una finestra pop-up per inserire il nome utente e la password


5
Potresti voler menzionare le implicazioni di sicurezza di questo. Sembra un'idea terribile, in particolare a livello globale.
C. Helling,

Ho lavorato su HPC per me
mmann1123

6

RISOLTO: ho riscontrato questo errore quando ho installato un aggiornamento al programma di installazione di Windows Git. Quello che è successo è che non l'ho installato con i diritti di amministratore, quindi Git è stato installato in "C: \ Users \ my_name \ AppData \ Local \ Programmi" anziché in "C: \ Programmi". la reinstallazione di Git come amministratore ha permesso di inserirlo in C: \ program Files e tutto è andato di nuovo bene!


Per quello che vale, disinstallare e reinstallare GitHub Desktop ha risolto questo problema anche per me, nonostante utilizzi ancora la cartella AppData.
Ben Collier,

5

Questo ha funzionato per me (sto usando Manjaro Linux). Corro il cmd per visualizzare i certificati ca:

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

Ma in realtà ho trovato i certificati sul percorso:

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

Quindi aggiungi la configurazione in ~ / .gitconfig (se non esistente, creala):

**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>

Funziona!

.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
Ha funzionato per me su archlinux!
Lucasem,

4

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

Questo funziona Non devi dare il percorso completo.


3

Ho affrontato questo mentre git pull. Il mio ha modificato il file di configurazione globale di git che ha risolto il problema.

Vai alla cartella principale e apri il file .gitconfig. Di solito C: \ Users \ .gitconfig

Se il file non è presente crearlo

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

Lì devi dare il tuo percorso di installazione git. Ho usato la versione portatile di git qui.

Quindi git clone / pull funzionerà.


1
Devi usare i caratteri di doppia escape:E:\\systools...
HappyCactus il

MA, assicurati di NON avvolgere il percorso tra virgolette. super-intuitivo. "C:\\folder\\file"è cattivo, C:\\folder\\fileè buono. Rivoglio l'ora indietro.
incredibilmente il

2

Se stai usando la shell dei comandi Git che si installa con l'app GitHub per Windows, questo e vari altri problemi possono mostrare dopo un aggiornamento. Basta avviare l'app di Windows Git Hub e chiuderla di nuovo. La shell funzionerà nuovamente OK. Il problema è che l'aggiornamento non viene completato fino a quando non viene eseguita l'applicazione Windows. Il solo utilizzo della shell non comporta l'aggiornamento per il completamento.


2

L'ho visto sul mio Github per Windows.

Consiglio di disinstallare Github per Windows e installarlo di nuovo.

Prima di questo, ho provato diversi modi senza successo, ma questa soluzione ha funzionato per me!


1

Su Windows con msysgit ho riscontrato questo errore e la causa sono state le mie aggiunte ai nostri certificati proxy aziendali.

Se modifichi curl-ca-bundle.crt devi essere sicuro dei tuoi lineendings. Nel caso del curl-ca-bundle devi usare lineendings in stile 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

Puoi usare notepad ++ per convertire i lineendings in Linux (linefeed).


1

Per contro, questo problema può verificarsi in Windows se l'utente che sta tentando di usare git è diverso dall'utente che lo ha installato. L'errore può indicare che git non può accedere ai file del certificato. L'installazione di git come amministratore e l'utilizzo della risposta di @ rogertoday hanno risolto il mio problema.


1

Ho trovato una buona soluzione per aggiungere / aggiornare i certificati CA su RHEL / CentOS 6 che è il problema segnalato dalla causa principale.

Da quando diventano distribuzioni obsolete, le autorità cacert in quel sistema non sono state aggiornate fino all'esecuzione del comando sudo yum update.

Non ho realizzato il problema fino a quando la modalità GIT_CURL_VERBOSE non mostra il problema relativo al percorso cacert.


0

Su Linux, ho riscontrato questo errore e risolto eseguendo sudo update-ca-certificates.


Dovresti spiegare cosa fa questo comando e perché questo aiuta. Pubblicare comandi grezzi senza spiegazioni non è una buona idea, specialmente se è necessario l'accesso root.
Peanut,

0

Per me ciò che ha risolto il problema era quando sul mio Windows 10 Box, ho provato a disinstallare git e resintalling, usando Windows Cmd come predefinito non Git Bash

Apri CMD ed esegui quanto segue

//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

Se qualcun altro sta affrontando questo problema in Git per Windows e non ha alcun curl-ca-bundle.crtpunto sul sistema anche dopo la reinstallazione, questo è il processo che ho seguito:

  1. Scarica l'ultima versione di curl qui: curl download mirror
  2. Estrai e naviga curl-**.**.*/libnella riga di comando
  3. Correre ./mk-ca-bundle.prl
  4. Copia ca-bundle.crtsul tuo percorso git e aggiorna la configurazione come elencato in altre risposte

Grida a questa idea per avermi aiutato a completare l'installazione.


0

Ho risolto questo problema su un Windows Server 2016 reinstallandolo e scegliendo "libreria nativa di Windows Secure Channel" nel passaggio di installazione "Scelta del back-end di trasporto HTTPS".


0

La soluzione che funziona per me in Windows 64 bit è la seguente

git config --system http.sslverify false


0

Nel mio caso Win10 ho due versioni di.gitconfig

  • il primo è dentro C:\Program Files\Git\etc
  • il secondo è dentro C:\Users\<user>

Il comando

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

apporta delle modifiche a C:\Program Files\Git\etc, ma git in qualche modo usa config inC:\Users\<user>

Quindi con il blocco note ho cambiato il secondo .gitconfige finalmente git ha preso la giusta configurazione e ha funzionato.


-1

Sono stato in grado di risolvere questo problema con il seguente comando.

git config --system http.sslverify false


Questa risposta sarebbe migliore se discutesse delle implicazioni di sicurezza di questa impostazione e fornisse anche altri modi per risolvere il problema. Tuttavia, l'attuale risposta accettata fa questo e altro ...
Chwarr,

-1

Ho ricevuto questo errore dopo aver spostato git su hard disk. L'eliminazione e la reinstallazione nella nuova posizione hanno risolto alcuni problemi


-1

Su git per Windows puoi anche reinstallare e selezionare il metodo di convalida del certificato nativo di Windows (OpenSSL è di default). Ciò salterà la verifica OpenSSL e utilizzerà invece quella nativa di Windows, che non richiede la manutenzione di uno strumento separato (OpenSSL) e certificati.

Ha funzionato perfettamente per me :)


-2

Il seguente comando

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

ha funzionato per le mie esigenze, ma suppongo che tu voglia più di un accesso di sola lettura, giusto?

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.