Github: erro ao clonar meu repositório privado


155

Estou tentando clonar meu projeto GitHub usando o URL https, mas ele falha com um erro:

$ 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

O que estou fazendo de errado?

Respostas:


289

Eu já vi isso no Windows, com o msysgit 1.7.2.3. Você precisa corrigir o caminho para bin / curl-ca-bundle.crt . Eu tive que especificar o caminho absoluto, usando barras invertidas:

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

ou - não é realmente recomendado - você pode optar por desativar completamente as verificações de SSL executando:

git config --system http.sslverify false

Nos dois casos, isso resultará em alterações no arquivo [git-install-dir] / etc / gitconfig, que também podem ser editadas diretamente.

(Soluções originais encontradas em http://github.com/blog/642-smart-http-support )


1
No meu caso, eu precisava usar o delimitador de diretório para o Windows, quero dizer, eu tenho que usar o "\" (windows) em vez de "/" (unix) para separar os diretórios no caminho.
Victor

Como a postagem original abaixo funciona para mim Experimente-a em um repositório público: $ git clone github.com/schacon/grack.git Para repositórios particulares ou para ter acesso por push no seu repositório, você pode clonar da seguinte maneira: $ git clone username@github.com/username/project.git Obrigado :)
J4cK 7/16/16

13
Para referências futuras, o caminho parece ter mudado para mim para "C: \ Arquivos de Programas (x86) \ Git \ mingw32 \ ssl \ certs \ ca-bundle.crt"
Ben

3
O caminho na minha máquina de 64 bits é "C: \ Program Files \ Git \ mingw64 \ ssl \ certs \ ca-bundle.crt"
Kamaraju Kusumanchi

3
Na minha máquina de 64 bits, git config --global http.sslcainfo "C:\Program Files\Git\mingw64\ssl\certs\ca-bundle.crt"funcionou, não posso dizer por que o sistema global falhou.
semako 14/05

76

Resolvi o problema ao instalar o Git em: https://git-for-windows.github.io/ Localize o caminho do arquivo cert:

D: \ Arquivos de programas \ Git \ mingw64 \ ssl \ certs \ ca-bundle.crt

Configure o caminho do Git:

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

Tente novamente


13
Eu tenho error: could not lock config file C:\Program Files\Git\mingw64/etc/gitconfig: Permission denied. Funcionou "C:\Program Files\Git\git-bash.exe"como administrador e tentou novamente e funcionou. Obrigado!
AXO

Melhor explicação
Kasim Rangwala

2
Acabei de instalar o Git for Windows 2.13.2 e me deparei com esse problema tentando enviar para o controle remoto. Eu encontrei o arquivo cert estava em um local semelhante:C:\Program Files\Git\mingw64\ssl\certs\ca-bundle.crt
Simon Tewsi

1
isso funcionou para mim, eu só instalei o Git usando o link que você compartilhou e que resolveu para mim, obrigado
Sunny Okoro Awa

Eu tinha instalado GIT em um diretório especificado durante o tempo de instalação, daí eu tive que especificar o caminho MINGW64 correta como por que a instalação
gargkshitiz

21

Se você usa o MSYS2 ...

Basta instalar os pacotes de certificados com os seguintes comandos:

32 bits

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

64 bits

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

1
Mais um. Obrigado. Não se lembre de ter que fazer isso msys2 32 bits, mas as circunstâncias podem ser diferentes.
BVJ

1
Obrigado, eu confirmar isso é a coisa a fazer usando msys2 64 bits :-D
FabienRohrer

1
Pode ocorrer que o arquivo /usr/ssl/certs/ca-bundle.crt esteja vazio, apenas reinstale os certificados ca novamente
Daniel YC Lin

Não para Windows: $ pacman -S mingw-w64-x86_64-ca-certificados certificados ca bash: pacman: command not found
belgoros

@ Javix É por isso que diz "Se você usa o MSYS2". O comando pacman não está disponível por padrão no Windows, mas está disponível se você tiver o MSYS2 instalado.
precisa saber é o seguinte

12

Se você estava usando o Cygwin, pode instalar o pacote ca-certificates com o apt-cyg :

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

Como instalo um pacote cygwin a partir da linha de comando?


1
Droga. Eu procurei por tanto tempo. Isso funcionou também no mac. Obrigado por compartilhar.
Phlow

1
Em Cygwin ele trabalhou para mimgit config --system http.sslcainfo /usr/ssl/certs/ca-bundle.crt
ATorras

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

Vai resolver o problema. Depois disso, uma janela pop-up aparece para inserir seu nome de usuário e senha


5
Você pode mencionar as ramificações de segurança disso. Parece uma péssima idéia, particularmente globalmente.
C. Helling

Trabalhei em HPC para mim #
mmann1123

6

RESOLVIDO: Eu recebi esse erro quando instalei uma atualização no instalador do Windows Git. O que aconteceu é que eu não o instalei com direitos de administrador, portanto o Git foi instalado em "C: \ Users \ meu_nome \ AppData \ Local \ Programs" em vez de "C: \ Arquivos de Programas". reinstalar o Git como administrador permitiu colocá-lo em C: \ Arquivos de programas e tudo correu bem novamente!


Pelo que vale a pena, desinstalar e reinstalar o GitHub Desktop também corrigiu isso para mim, apesar de ainda estar usando a pasta AppData.
Ben Collier

5

Isso funcionou para mim (estou usando o Manjaro linux). Eu executo o cmd para visualizar os certificados ca:

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

Mas na verdade eu encontrei os certificados no caminho:

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

Em seguida, adicione a configuração em ~ / .gitconfig (se não existir, crie-a):

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

Funciona!

.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
Trabalhou para mim no archlinux!
Lucasem 31/07/16

4

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

Isso funciona. Você não precisa dar o caminho completo.


3

Eu enfrentei isso enquanto git pull. Para os meus editou o arquivo de configuração global do git que corrigiu o problema.

Vá para a sua pasta pessoal e abra o arquivo .gitconfig. Geralmente C: \ Users \ .gitconfig

Se o arquivo não estiver lá, crie-o

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

Lá você deve fornecer seu próprio caminho de instalação do git. Eu usei a versão portátil do git aqui.

Em seguida, git clone / pull funcionará.


1
Você precisa usar caracteres de escape duplo:E:\\systools...
HappyCactus

MAS, certifique-se de NÃO envolver o caminho entre aspas. super-contra-intuitivo. "C:\\folder\\file"é ruim, C:\\folder\\fileé bom. Quero minha hora de volta.
increddibelly

2

Se você estiver usando o shell de comando Git que é instalado com o aplicativo GitHub for Windows, esse e vários outros problemas podem aparecer após uma atualização. Basta iniciar o aplicativo Windows Git Hub e desligá-lo novamente. O shell funcionará OK novamente. O problema é que a atualização não é concluída até que o aplicativo do Windows seja executado. Apenas o uso do shell não aciona a atualização para ser concluída.


2

Eu já vi isso no meu Github para Windows.

Eu recomendo desinstalar o Github para Windows e instalá-lo novamente.

Antes disso, tentei várias maneiras sem sucesso, mas essa solução funcionou para mim!


1

No Windows usando o msysgit, tive esse erro e a causa foram minhas adições aos nossos certificados de proxy corporativo.

Se você editar o seu curl-ca-bundle.crt, terá que ter certeza de seus itens de linha. No caso do pacote curl-ca-bundle, é necessário usar os finais de linha no estilo 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

Você pode usar o notepad ++ para converter os itens de linha em Linux (avanço de linha).


1

Além disso, esse problema pode ocorrer no Windows se o usuário que está tentando usar o git for diferente do usuário que o instalou. O erro pode indicar que o git não pode acessar os arquivos de certificado. Instalar o git como administrador e usar a resposta de @ rogertoday resolveu meu problema.


1

Encontrei uma boa solução para adicionar / atualizar os certificados da CA no RHEL / CentOS 6, que é o problema relatado da causa raiz.

Desde que se tornam distribuições desatualizadas, as autoridades cacert nesse sistema não foram atualizadas até a execução do comando sudo yum update.

Não percebi o problema até que o modo GIT_CURL_VERBOSE mostre o problema do caminho do cacert.


0

No Linux, eu tive esse erro e o corrigi executando sudo update-ca-certificates.


Você deve explicar o que esse comando faz e por que isso ajuda. Postar comandos brutos sem explicação não é uma boa ideia, especialmente se você precisar de acesso root.
Amendoim

0

Para mim, o que resolveu o problema foi quando, na caixa do Windows 10, tentei desinstalar o git e re-instalar, usando o Windows Cmd como padrão e não o Git Bash

Abra o CMD e execute o seguinte

//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 mais alguém estiver enfrentando esse problema no Git for Windows e não tiver curl-ca-bundle.crtnenhum lugar no sistema, mesmo após a reinstalação, este é o processo que segui:

  1. Baixe a versão mais recente do curl aqui: curl download mirror
  2. Extraia e navegue para curl-**.**.*/libna linha de comando
  3. Corre ./mk-ca-bundle.prl
  4. Copie ca-bundle.crtpara o seu caminho git e atualize a configuração conforme listado em outras respostas

Grite para essa essência por me ajudar a concluir a instalação.


0

Resolvi esse problema em um Windows Server 2016 reinstalando-o e escolhendo "biblioteca nativa do Windows Secure Channel" na etapa de instalação "Escolhendo o back-end de transporte HTTPS".


0

A solução que funciona para mim no Windows 64bits é a seguinte

git config --system http.sslverify false


0

No meu caso win10, tenho duas versões do.gitconfig

  • o primeiro está em C:\Program Files\Git\etc
  • o segundo está em C:\Users\<user>

O comando

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

realmente faz alterações C:\Program Files\Git\etc, mas o git de alguma forma usa configC:\Users\<user>

Então, com o bloco de notas, mudei o segundo .gitconfige o git finalmente assumiu a configuração correta e começou a trabalhar.


-1

Consegui resolver esse problema com o seguinte comando.

git config --system http.sslverify false


Essa resposta seria melhor se discutisse as implicações de segurança dessa configuração e também fornecesse outras maneiras de resolver o problema. Embora, a resposta aceita atual faz isso e muito mais ...
chwarr

-1

Eu recebi esse erro depois de mover o git pelos discos rígidos. A exclusão e a reinstalação no novo local corrigiram as coisas


-1

No git for Windows, você também pode reinstalar e selecionar o método de validação de certificado nativo do Windows (o OpenSSL é o padrão). Isso ignorará a verificação do OpenSSL e, em vez disso, usará a nativa do Windows, que não exige a manutenção de uma ferramenta separada (OpenSSL) e de certificados.

Funcionou perfeitamente para mim :)


-2

O seguinte comando

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

funcionou para minhas necessidades, mas presumo que você queira mais do que acesso somente leitura, certo?

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.