Configuración de certificados SSL en GIT

git_github

Siempre que empiezo a trabajar con una maquina virtual (o en una plataforma) y quiero clonar un repositorio GIT tengo los mismos problemas de siempre al tratarse de un sitio https. Por ello he decidido crear esta entrada indicándoles las alternativas que pueden hacer para estos casos.

Cuando intentas clonar un repositorio de Github usando HTTPS, tendrás dificultades con los certificados, apareciéndote un error muy similar al siguiente (dependiendo de tu versión de GIT).

gchacaltana@home-pc:~# git clone https://github.com/gchacaltana/ClientAPICloudforms.git
Cloning into 'ClientAPICloudforms'...
fatal: unable to access 'https://github.com/gchacaltana/ClientAPICloudforms.git/': Problem with the SSL CA cert (path? access rights?)

En otras versiones de GIT, quizás te aparezca : “fatal: HTTP request failed

Alternativa N° 1:  Desactivar la verificación SSL.

Esta primera solución, es la mas rápida pero no lo mejor que puedas hacer.

gchacaltana@home-pc:~# git config --global http.sslVerify false
gchacaltana@home-pc:~# git clone https://github.com/gchacaltana/ClientAPICloudforms.git
Cloning into 'ClientAPICloudforms'...
remote: Reusing existing pack: 9, done.
remote: Total 9 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (9/9), done.
gchacaltana@home-pc:~#

 

Alternativa N° 2:  Crear certificado CA.

Para el siguiente ejemplo, restablecemos el sslVerify a true.

gchacaltana@home-pc:~# git config --global http.sslVerify true

Asegúrese de tener los certificados CA.

gchacaltana@home-pc:~# opkg install ca-certificates

Luego edita el archivo oculto .gitconfig que esta en el directorio personal, si no existe, puede crearla de la siguiente forma:

gchacaltana@home-pc:~# cd ~/
gchacaltana@home-pc:~# ls .git* -l
-rw-rw-r-- 1 gchacaltana gchacaltana 91 Mar 29 23:31 .gitconfig
gchacaltana@home-pc:~# sudo vim .gitconfig

Cambia la configuración de tu .gitconfig para http.

[user]
    email = gchacaltanab@outlook.com
    name = Gonzalo Chacaltana
[http]
    sslVerify = true
    sslCAinfo = /etc/ssl/certs/ca-certificates.crt

Ahora si intente clonar el repositorio con su git clone y listo!.