Como posso adicionar um pacote de certificados x509 (ca-bundle.crt) ao banco de dados NSS (~. / pki / nssdb)

1

Atualmente, estou usando o RedHat Enterprise 6. O Git tinha problemas para clonar repos do Github usando HTTPS. Após alguma investigação (por exemplo, ativar GIT_CURL_VERBOSE e GIT_TRACE), o problema foi reduzido a um problema de validação de certificado, o qual foi resolvido atualizando o banco de dados do certificado, ou seja:

curl http://curl.haxx.se/ca/cacert.pem -o /etc/pki/tls/certs/ca-bundle.crt

As coisas funcionaram bem por um tempo. No entanto, depois de uma atualização do sistema, estou recebendo um erro diferente:

Couldn't find host github.com in the .netrc file; using defaults
* About to connect() to github.com port 443 (#0)
*   Trying 192.30.252.128... * Connected to github.com (192.30.252.128) port 443 (#0)
* Initializing NSS with certpath: sql:/etc/pki/nssdb
* NSS error -5978
* Expire cleared

Infelizmente não encontrei essa descrição do código de erro na documentação . Parece que o sistema atualizado da biblioteca CURL padrão é NSS e depende exclusivamente dos certificados em / etc / pki / nssdb Eu tenho tentado resolver esse problema tentando diferentes comandos para adicionar os certificados ao NSS, mas falhou.

Você pode recomendar uma solução? É possível forçar o Git e / ou o CURL a usar o banco de dados do pacote CA, ou até mesmo desabilitar a validação do certificado?

Qualquer solução que possa permitir que os comandos do Git sejam executados usando os repositórios do Github será bem-vinda.

Notas:

versão Curl curl 7.19.7 (x86_64-redhat-linux-gnu) libcurl / 7.19.7 NSS / 3.14.0.0 zlib / 1.2.3 libidn / 1.18 libssh2 / 1.4.2

    
por Sebastian 03.01.2014 / 23:55

1 resposta

2

Acredito que você possa substituir o arquivo .crt que git usa assim:

$ git config --system http.sslcainfo "/etc/pki/tls/certs/ca-bundle.crt"

Você pode desabilitar todas as verificações de SSL (não recomendado):

$ git config --system http.sslverify false
    
por 04.01.2014 / 04:38