Eu tenho uma configuração de servidor que possui um certificado HTTPS emitido por um provedor de certificado principal (DigiCert). O certificado é reconhecido por todos os navegadores em uma máquina que executa o Windows Server 2008 R2, incluindo o Internet Explorer, o Chrome e o Firefox.
No entanto, o certificado não é reconhecido no Cygwin. Por exemplo, eu recebo este erro quando tento clonar um URL git deste servidor:
error: SSL certificate problem: unable to get local issuer certificate while accessing [URL]
fatal: HTTP request failed
Outras ferramentas dentro do Cygwin eu tentei dar o mesmo erro, como curl:
curl: (60) SSL certificate problem: unable to get local issuer certificate
O Digicert tem o certificado exato de que preciso. Minhas soluções ideais seriam atualizar o pacote de certificados que o Cygwin usa ou instalar manualmente o certificado necessário. Parece que o Cygwin tem um armazenamento de certificados separado do Windows. Como posso fazer isso?
Nota: Eu não quero simplesmente ignorar o erro, pois muitos usuários usam esta máquina e precisarão acessar o mesmo servidor, então não faria sentido ignorar cada vez.
gnutls-cli <server> -p 443
ou ssl-tools.net/webservers são boas maneiras de verificar de fora. Se você tiver o pacote ca-certificates do Cygwin instalado, tenho certeza de que ele usa o pacote Mozilla, que certamente possui o DigiCert.Respostas:
Como o seu
git
comando está usando o Curl internamente, tentecurl --verbose https://the-repo-URL
ver o que acontece.O resultado esperado é o mesmo erro que você relatou: " Problema de certificado SSL: impossível obter certificado de emissor local ". Também na saída detalhada deve haver algo como:
* successfully set certificate verify locations: CAfile: /etc/pki/tls/certs/ca-bundle.crt CApath: none
O erro e a saída acima são traduzidos como: O certificado X.509 que seu repositório está usando é auto-assinado e não é confiável por Curl ou é emitido por uma autoridade de certificação não confiável pelo Curl. Os locais em que procuramos uma âncora de confiança foram incluídos
/etc/pki/tls/certs/ca-bundle.crt
, mas não conseguimos encontrar nada aplicável.Para corrigir isso:
/etc/pki/ca-trust/source/anchors
update-ca-trust
. Faça isso com permissões de administrador. Observe também que este comando não produz nada.fonte