Solução para o erro “unable to get local issuer certificate”
Visão Geral do Erro
O erro “unable to get local issuer certificate” ocorre quando uma aplicação não consegue verificar a autenticidade de um certificado SSL. Isso é comum em ambientes de desenvolvimento, especialmente quando se utiliza certificados autoassinados ou quando a cadeia de certificação não está corretamente configurada. Esse erro pode surgir em diversas situações, como ao utilizar o Git, cURL, ou ao desenvolver aplicações em PHP e Node.js.
Causas Comuns
As principais causas do erro “unable to get local issuer certificate” incluem:
- Certificado SSL não confiável: A aplicação tenta validar um certificado que não é reconhecido como confiável.
- Cadeia de certificação incompleta: Faltam certificados intermediários necessários para validar o certificado apresentado.
- Configuração inadequada do ambiente: As configurações de SSL não estão corretamente definidas na aplicação ou no sistema.
Métodos de Solução
Método 1: Alterar o backend SSL do Git
Uma das soluções mais comuns para resolver esse erro no Git é alterar o backend SSL. Siga as instruções abaixo:
- Abra o terminal (Git Bash).
- Execute o seguinte comando:
bash
git config --global http.sslbackend schannel
Essa configuração diz ao Git para usar o backend de criptografia do Windows, que pode resolver problemas de certificação em ambientes Windows.
Método 2: Desabilitar a verificação SSL
Desabilitar a verificação SSL pode resolver temporariamente o problema, mas não é recomendado para uso a longo prazo devido a riscos de segurança. Para desativar a verificação:
- Abra o terminal.
- Execute os seguintes comandos:
bash
git config --global http.sslVerify false
Isso desativa a verificação SSL. Lembre-se de reativá-la posteriormente com o comando:
git config --global http.sslVerify true
Método 3: Configurar o arquivo gitconfig
Outra opção é editar o arquivo de configuração do Git para desabilitar a verificação SSL:
- Localize o arquivo
gitconfig. Geralmente, ele está em:
C:\Program Files (x86)\Git\etc\gitconfig - Abra o arquivo em um editor de texto e adicione as seguintes linhas na seção
[http]:
ini
[http]
sslVerify = false
Método 4: Atualizar o cacert.pem
Se você estiver utilizando PHP ou cURL, você pode precisar fornecer um arquivo cacert.pem atualizado:
- Baixe o arquivo
cacert.pemdo site curl.se. - Coloque este arquivo em um diretório acessível, como:
C:\xampp\php\extras\ssl\cacert.pem - Em seu arquivo
php.ini, adicione as seguintes linhas:
“`ini
[curl]
curl.cainfo = “C:\xampp\php\extras\ssl\cacert.pem”
[openssl]
openssl.cafile = “C:\xampp\php\extras\ssl\cacert.pem”
“`
4. Reinicie seu servidor web para aplicar as mudanças.
Método 5: Configurar o Node.js
Para usuários do Node.js, é possível desabilitar a verificação SSL temporariamente:
- Abra o terminal.
- Execute o seguinte comando:
bash
npm config set strict-ssl false - Para restaurar a configuração, use:
bash
npm config set strict-ssl true
Método 6: Usar o Python sem verificação SSL
Se você está lidando com um script Python, você pode desabilitar a verificação SSL com o seguinte código:
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
Dicas de Prevenção
Para evitar o erro “unable to get local issuer certificate” no futuro, considere as seguintes práticas:
- Sempre utilize certificados SSL válidos e confiáveis, preferencialmente emitidos por uma Autoridade Certificadora (CA) reconhecida.
- Mantenha seus arquivos de certificado atualizados, especialmente se você estiver desenvolvendo em um ambiente que utiliza certificados autoassinados.
- Configure adequadamente seu ambiente de desenvolvimento para trabalhar com SSL, garantindo que as bibliotecas e dependências estejam corretamente instaladas e configuradas.
Resumo
O erro “unable to get local issuer certificate” pode ser frustrante, especialmente em ambientes de desenvolvimento. No entanto, com as soluções apresentadas, você pode resolver a maioria dos problemas relacionados a esse erro. Lembre-se de que desabilitar a verificação SSL deve ser uma medida temporária e que o ideal é sempre utilizar certificados confiáveis e bem configurados para garantir a segurança da sua aplicação.

コメント