2 minutos
Erro de certificado SSL usando Git
Ao utilizar git em algum repositório remoto que fazia
uso de https
, você obteve este erro?
server certificate verification failed. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none
Geralmente ocorre por causa do certificado ser auto assinado, ou seja, quando não gerado por uma autoridade certificadora.
O que você precisa é de um certificado pai (root) válido.
E por que o de outros sites, não ocorre o mesmo erro?
Por que normalmente quem emite o certificado, já tem os certificados pai
(root) na sua máquina, não na deles, na sua mesmo, em Linux ficam em
/etc/ssl/certs/
. Quando navegadores (root) são instalados, também possuem
alguns e vão referenciados na mesma pasta, por isso não ocorre o erro.
Outra coisa
Também pode ocorrer se a hora do servidor não for a mesma do cliente que faz a requisição. Caso um dos 2 estejam com a hora desregulada ou data
A solução é instalar um
certificado válido
.
Mas primeiro compre um, pode ser na Namecheap ou obtenha usando o Let’s Encrypt que é de graça (mas expira a cada 3 meses, pagos geralmente tem validade de 1 ano).
Vamos a uma outra solução, omitindo a verificação de validade do certificado.
Se isso não for uma opção opção válida, existe a possibilidade de omitir a verificação.
Pode omitir somente na execução atual:
GIT_SSL_NO_VERIFY=0 git [clone|update|fetch...] <repositório>
Ou desabilitar permanentemente para o respositório local, usando:
$ git config --local http.sslverify false
A flag --local
indica qual o escopo do arquivo de configuração. Para
entender em quais escopos usar e quais os arquivos de configuração o
git possui, veja meu post
“Variáveis e escopos nas configurações do git".