Github: error al clonar mi repositorio privado


155

Estoy tratando de clonar mi proyecto GitHub usando la URL https, pero falla con un error:

$ 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é estoy haciendo mal?

Respuestas:


289

He visto esto en Windows, con msysgit 1.7.2.3. Tienes que arreglar la ruta a bin / curl-ca-bundle.crt . Tuve que especificar la ruta absoluta, usando barras diagonales inversas:

git config --sistema http.sslcainfo "C: \ Archivos de programa (x86) \ git \ bin \ curl-ca-bundle.crt"

o, no se recomienda realmente, puede optar por desactivar completamente las comprobaciones SSL ejecutando:

git config --sistema http.sslverify falso

En ambos casos, esto dará como resultado cambios en el archivo [git-install-dir] / etc / gitconfig, que también puede editarse directamente.

(Las soluciones originales se encuentran en http://github.com/blog/642-smart-http-support )


1
En mi caso, necesitaba usar el delimitador de directorio para Windows, es decir, tengo que usar "\" (windows) en lugar de "/" (unix) para separar directorios en la ruta.
Victor

Como la publicación original a continuación funciona para mí Pruébalo en un repositorio público: $ git clone github.com/schacon/grack.git Para repositorios privados, o para tener acceso push en tu repositorio, puedes clonar de esta manera: $ git clone username@github.com/username/project.git Gracias :)
J4cK

13
Para futuras referencias, la ruta parece haber cambiado para mí a "C: \ Archivos de programa (x86) \ Git \ mingw32 \ ssl \ certs \ ca-bundle.crt"
Ben

3
La ruta en mi máquina de 64 bits es "C: \ Archivos de programa \ Git \ mingw64 \ ssl \ certs \ ca-bundle.crt"
Kamaraju Kusumanchi

3
En mi máquina de 64 bits, git config --global http.sslcainfo "C:\Program Files\Git\mingw64\ssl\certs\ca-bundle.crt"funcionó, no puedo decir por qué el sistema global falló.
semako

76

Resolví el problema instalando el Git desde: https://git-for-windows.github.io/ Busque la ruta del archivo cert:

D: \ Archivos de programa \ Git \ mingw64 \ ssl \ certs \ ca-bundle.crt

Configure la ruta de Git:

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

Inténtalo de nuevo


13
Llegué error: could not lock config file C:\Program Files\Git\mingw64/etc/gitconfig: Permission denied. Corrió "C:\Program Files\Git\git-bash.exe"como administrador e intenté nuevamente y funcionó. ¡Gracias!
AXO

Mejor explicación
Kasim Rangwala

2
Acabo de instalar Git para Windows 2.13.2 y me encontré con este problema al intentar enviarlo al control remoto. Encontré que el archivo cert estaba en una ubicación similar:C:\Program Files\Git\mingw64\ssl\certs\ca-bundle.crt
Simon Tewsi

1
esto funcionó para mí, solo instalé el Git usando el enlace que compartiste y eso lo resolvió para mí, gracias
Sunny Okoro Awa

Había instalado GIT en un directorio específico durante el tiempo de instalación, por lo tanto, tuve que especificar la ruta MINGW64 correcta según esa instalación
gargkshitiz

21

Si usa MSYS2 ...

Simplemente instale los paquetes de certificados con los siguientes 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
Mas uno. Gracias. No recuerdo haber tenido que hacer este msys2 de 32 bits, pero las circunstancias pueden ser diferentes.
bvj

1
Gracias, confirmo que esto es lo que se debe hacer con msys2 64 bits :-D
FabienRohrer

1
Puede ocurrir que el archivo /usr/ssl/certs/ca-bundle.crt esté vacío, solo vuelva a instalar los certificados ca nuevamente
Daniel YC Lin

No para Windows: $ pacman -S mingw-w64-x86_64-ca-certificados ca-certificados bash: pacman: comando no encontrado
belgoros

@Javix Por eso dice "Si usas MSYS2". El comando pacman no está disponible de forma predeterminada en Windows, pero está disponible si tiene instalado MSYS2.
CoolOppo

12

Si estaba utilizando Cygwin, podría instalar el paquete de certificados ca con apt-cyg :

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

¿Cómo instalo un paquete cygwin desde la línea de comandos?


1
Maldición. He buscado tanto tiempo. Esto funcionó también en mac. Gracias por compartir.
Phlow

1
En Cygwin funcionó para mígit config --system http.sslcainfo /usr/ssl/certs/ca-bundle.crt
ATorras

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

Resolverá el problema. Después de eso, aparece una ventana emergente para ingresar su nombre de usuario y contraseña


55
Es posible que desee mencionar las ramificaciones de seguridad de esto. Esto parece una idea terrible, particularmente a nivel mundial.
C. Helling

Trabajó en HPC para mí
mmann1123

6

SOLUCIONADO: Recibí este error cuando instalé una actualización para el instalador de Windows Git. Lo que sucedió es que no lo instalé con derechos de administrador, por lo que Git se instaló en "C: \ Users \ my_name \ AppData \ Local \ Programs" en lugar de "C: \ program Files". ¡reinstalar Git como administrador permitió ponerlo en C: \ Archivos de programa y todo volvió a funcionar!


Para lo que vale, desinstalar y reinstalar GitHub Desktop también me arregló esto, a pesar de que todavía usa la carpeta AppData.
Ben Collier

5

Esto funcionó para mí (estoy usando Manjaro Linux). Ejecuto el cmd para ver los certificados ca:

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

Pero en realidad encontré los certificados en la ruta:

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

Luego agregue la configuración en ~ / .gitconfig (si no existe, créelo):

**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
¡Trabajó para mí en Archlinux!
lucasem

4

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

Esto funciona. No tienes que dar el camino completo.


3

Me enfrenté a esto mientras git pull. Para los míos, edité el archivo de configuración global de git que solucionó el problema.

Vaya a su carpeta de inicio y abra el archivo .gitconfig. Por lo general, C: \ Users \ .gitconfig

Si el archivo no está allí, créelo

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

Allí debe dar su propia ruta de instalación de git. He usado una versión portátil de git aquí.

Entonces git clone / pull funcionará.


1
E:\\systools...
Debe

PERO, asegúrese de NO ajustar la ruta entre comillas. súper contra-intuitivo. "C:\\folder\\file"es malo, C:\\folder\\filees bueno Quiero mi hora de regreso.
increddibelly

2

Si está utilizando el shell de comandos de Git que se instala con la aplicación GitHub para Windows, este y otros problemas pueden aparecer después de una actualización. Simplemente inicie la aplicación de Windows Git Hub y vuelva a apagarla. El shell funcionará bien nuevamente. El problema es que la actualización no se completa hasta que se ejecuta la aplicación de Windows. Simplemente usar el shell en su no activa la actualización para completar.


2

He visto esto en mi Github para Windows.

Recomiendo desinstalar Github para Windows e instalarlo nuevamente.

Antes de esto, intenté varias formas sin éxito, ¡pero esta solución funcionó para mí!


1

En Windows usando msysgit tuve este error y la causa fue la incorporación de nuestros certificados de proxy corporativo.

Si edita su curl-ca-bundle.crt, debe asegurarse de sus finales de línea. En el caso del paquete curl-ca-tienes que usar lineendings de 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

Puede usar notepad ++ para convertir los finales de línea a Linux (salto de línea).


1

En una nota al margen, este problema puede ocurrir en Windows si el usuario que está tratando de usar git es diferente al usuario que lo instaló. El error puede indicar que git no puede acceder a los archivos de certificado. Instalar git como administrador y usar la respuesta de @ rogertoday resolvió mi problema.


1

Encontré una buena solución para agregar / actualizar los certificados de CA en RHEL / CentOS 6, que es la causa raíz del problema informado.

Dado que se convierten en distribuciones desactualizadas, las autoridades de cacert en ese sistema no se han actualizado hasta ejecutar el comando sudo yum update.

No me di cuenta del problema hasta que el modo GIT_CURL_VERBOSE muestra el problema de la ruta de cacert.


0

En Linux, tuve este error y lo solucioné ejecutando sudo update-ca-certificates.


Debe explicar qué hace este comando y por qué esto ayuda. Publicar comandos sin formato sin explicación no es una buena idea, especialmente si necesita acceso root.
Peanut

0

Para mí, lo que resolvió el problema fue cuando en mi caja de Windows 10, traté de desinstalar git y volver a instalar, usando Windows Cmd como predeterminado, no Git Bash

Abra CMD y ejecute lo siguiente

//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 alguien más se enfrenta a este problema en Git para Windows y no tiene curl-ca-bundle.crtningún lugar en su sistema, incluso después de la reinstalación, este es el proceso que seguí:

  1. Descargue la última versión de curl aquí: curl download mirror
  2. Extraer y navegar curl-**.**.*/liben la línea de comando
  3. correr ./mk-ca-bundle.prl
  4. Copie ca-bundle.crta su ruta git y actualice la configuración como se muestra en otras respuestas

Gracias a esta esencia por ayudarme a realizar la instalación.


0

He resuelto este problema en un Windows Server 2016 reinstalando y eligiendo la "biblioteca nativa de Windows Secure Channel" en el paso de instalación "Elección del backend de transporte HTTPS".


0

La solución que funciona para mí en Windows 64bits es la siguiente

git config --sistema http.sslverify falso


0

En mi caso win10 tengo dos versiones de.gitconfig

  • el primero está en C:\Program Files\Git\etc
  • el segundo está en C:\Users\<user>

El comando

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

de hecho hace cambios a C:\Program Files\Git\etc, pero git de alguna manera usa config enC:\Users\<user>

Entonces, con el bloc de notas cambié el segundo .gitconfigy git finalmente tomó la configuración correcta y comenzó a funcionar.


-1

Pude resolver este problema con el siguiente comando.

git config --sistema http.sslverify falso


Esta respuesta sería mejor si discutiera las ramificaciones de seguridad de esta configuración y proporcionara otras formas de resolver el problema también. Sin embargo, la respuesta aceptada actual hace esto y más ...
chwarr

-1

Recibí este error después de mover git a través de discos duros. Eliminar y reinstalar en la nueva ubicación las cosas arregladas


-1

En git para Windows también puede reinstalar y seleccionar el certificado nativo de Windows método de validación de (OpenSSL es el predeterminado). Esto omitirá la verificación de OpenSSL y en su lugar usará la nativa de Windows, que no requiere mantener una herramienta separada (OpenSSL) y certificados.

Funcionó perfectamente para mí :)


-2

El siguiente comando

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

funcionó para mis necesidades, pero supongo que quieres algo más que acceso de solo lectura, ¿verdad?

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.