Problema de certificado SSL: certificado autoassinado na cadeia de certificados

0

Por trás de um firewall, usando o chrome, consigo acessar um repositório do github da seguinte forma: link

O Chrome usa nosso certificado para esse acesso. Se eu tentar acessar o mesmo URL usando GitExtensions , recebo este erro:

SSL certificate problem: self signed certificate in certificate chain

Posso usar o GitExtensions para usar nosso certificado para permitir o acesso?

EDIT: mais informações:

Na minha máquina, não vejo mysysGit, mas vejo mingw / curl, então presumo que o Git esteja usando isso. Eles aparentemente não usam certificados confiáveis do Windows ao criar a cadeia de certificados. O erro que recebo, problema de certificado S SL: certificado autoassinado na cadeia de certificados , indica que o certificado raiz usado pelo Git / Github não está presente no pacote raiz de autoridade de certificação (CA) incorporado . Como apontado por @Akber Choudhry, o certificado da CA que é a raiz da cadeia de certs servida pelo servidor SSL do Github é CA raiz do EV de alta garantia DigiCert e eu vejo essa CA em C: \ Arquivos de programas (x86) \ Git \ bin \ curl-ca-bundle.crt.

Para verificar se o problema está no Git, não no GitExtensions, fiz isso na linha de comando:

 >>git clone https://github.com/Squirrel/Squirrel.Windows.git

E recebeu o mesmo erro no certificado SSL.

Ele dá a aparência de que o Git não está usando este certificado, então eu tentei configurar o Git da seguinte forma:

>>git config --system http.sslcainfo "C:\Program Files (x86)\Git\bin\curl-ca-bundle.crt"

mas isso não teve efeito ...

    
por Al Lelopath 23.06.2016 / 15:45

2 respostas

3

Behind a firewall, ...github ... Chrome uses our certificate for this access.

Com base nesta descrição, assumo que "nosso" certificado não é o certificado original para o Github, mas que você está usando um firewall com inspeção SSL que gera seu próprio certificado ("nosso") para um homem no meio da conexão. A CA no firewall que emitiu esse certificado (proxy CA) provavelmente foi adicionada ao Windows Trust Store e esse Chrome confiará nele.

Mas o Git não usa o Windows Trust Store e, portanto, não sabe sobre essa CA de proxy. Portanto, você precisa adicionar o proxy CA usado pelo firewall ao repositório de CA para o Git e não a CA original que emitiu o certificado para o Github.

    
por 24.06.2016 / 23:00
1

Quando você usa o chrome e acessa o Github em HTTPS, você está apenas verificando a cadeia de certificados do Github com certificados de raiz integrados no seu navegador e no Windows.

Nos bastidores, o Gitextensions usa o msysgit, que não consulta os certificados confiáveis do Windows ao criar a cadeia de certificados.

A partir do erro, parece que o certificado raiz usado pelo Github não está presente no pacote raiz de autoridade de certificação (CA) incorporado. Isso pode ser devido a Gitextensions empacotando uma versão mais antiga do msysgit ou curl.

msysgit inclui DigiCert High Assurance EV Root CA em seu pacote CA e está lá há alguns anos. Procure esta string no arquivo bin/curl-ca-bundle.crt

Verifique se existe uma versão mais antiga das ferramentas msysgit ou mingw instalada na sua máquina. Se sim, limpe e reinstale. Finalmente, consulte o procedimento de adição de certificado msysgit se você precisar adicionar o certificado.

    
por 23.06.2016 / 16:28