O Git parece reconhecer a propriedade http.sslcainfo do .gitconfig, mas a ignora na execução? SEC_E_UNTRUSTED_ROOT

10

apesar de tudo, tenho uma cadeia de certificados em funcionamento (testável com OpenSSL), mas de alguma forma não consigo dizer ao Git para carregar esses certificados.

Eu recebo o mesmo erro "autoridade raiz não confiável" (SEC_E_UNTRUSTED_ROOT) independentemente de minha configuração do git apontar para um arquivo de cadeia de certificados existente ou falso.

Para detalhes, verifique a imagem em anexo.insira a descrição da imagem aqui

Configuração que eu uso .gitconfigpara arquivo falso:

sslCAInfo = C:/tmp/foobar.crt

ou, para arquivo real que funciona com o OpenSSL:

sslCAInfo = C:/tmp/ca-bundle.crt

Transcrição do console:

C:\tmp>openssl version
OpenSSL 0.9.8h 28 May 2008

C:\tmp>git --version
git version 2.12.2.windows.2

C:\tmp>git config --list
http.sslverify=true
http.sslcainfo=C:/tmp/ca-bundle.crt

C:\tmp>dir
24.04.2017 13:45 10.875 ca-bundle.crt

c:\tmp>openssl s_client -state -connect https://mygithost:443 -CAfile .\ca-bundle.crt

Verify return code: 0 (ok)

C:\tmp git clone https://mygithost/bitbucket/scm/my.git
Cloning into ...
fatal: unable to access ... : schannel: next InitializeSecurityContext failed: SEC_E_UNTRUSTED_ROOT (0x80090325) - The certificate chain was issued by an authority that is not trusted.

C:\tmp> git -c http.sslverify=false clone https://mygithost/bitbucket/scm/my.git
Cloning into ...
Resoliving deltas: 100%, done.

C:\tmp>git config --list
http.sslverify=true
http.sslcainfo=C:/tmp/foobar.crt

C:\tmp\xxx\git pull
fatal: unable to access ... : schannel: next InitializeSecurityContext failed: SEC_E_UNTRUSTED_ROOT (0x80090325) - The certificate chain was issued by an authority that is not trusted.
Peter Muryshkin
fonte
Você tem um erro de digitação na sua configuração git: tml em vez de tmp
Tensibai
Acho estranho que o git não gera um erro no fakepath. Você deve verificar outros níveis de configuração (global, usuários e compromissadas) há provavelmente um lugar fallback
Tensibai
@Tensibai, por favor, forneça instruções ou um link para os documentos, sem saber como imprimir tudo isso. por exemplo, git config --global --list não funciona.
Peter Muryshkin
Git config --get-all deve fazer para mostrar todas as configurações resultantes do sistema, global e local (não é possível verificar se estou ao telefone, e isso é apenas um palpite, a solução alternativa seria set SSL_CERT_FILE=C:\tmp\ca-bundle.crtinformar ao openssl onde encontrar o pacote
Tensibai
C:\git config --get-all-- => error: wrong number of arguments
Peter Muryshkin

Respostas:

2

Fui atingido por isso apenas hoje após uma nova instalação, então veja como eu superei isso:

Nos seus logs (a ênfase é minha):

fatal: não foi possível acessar ...: schannel : next InitializeSecurityContext falhou:

O git está configurado para usar o schannel (implementação nativa do Windows), mas o schannel usa o pacote configurável do Windows e não o pacote cainfo.

Para alternar para openssl para usar um arquivo de pacote configurável personalizado, use este:

git config --system http.sslbackend openssl

E agora o git honrará o pacote CA fornecido em http.sslcainfo.

Como alternativa, como meu erro foi um problema do conjunto de códigos, você pode estar interessado nos seguintes links:

Tensibai
fonte
1

Eu tinha algo parecido há um ano, então espero me lembrar -

Você deve ter toda a cadeia de certificados no arquivo crt. Verifique se você possui todos os certificados intermediários entre seu certificado de bitbucket e o raiz (inclusive).

Você pode dar uma olhada no formato correto para anexá-los no formato pem (que eu acredito ser o seu caso com o crt) aqui .

Meu certificado foi assinado pela Comodo quando tive esse problema, o certificado e o intermediário não estavam no pacote CA padrão fornecido pela maioria dos sistemas.

Espero que ajude!

Edit: Agora eu notei que isso acontece também com o falso - tente verificar os certificados conhecidos padrão do sistema (cada sistema possui tal). No Windows, você pode acessar o snap-in mmc dos Certificados do Windows .

arieljannai
fonte