Ao trabalhar com serviços HTTPS no Linux, pode ocorrer um erro de certificado, problema de certificado SSL ou falha ao verificar o primeiro certificado. Isso geralmente significa que o sistema não consegue verificar a autenticidade do certificado SSL do servidor.
Neste artigo, vamos analisar as causas do erro e as formas de corrigi-lo para clientes baseados em Windows e Linux!
Linux
Passo 1. Verifique o texto do erro
Ao conectar via curl, wget, git ou outros utilitários, podem aparecer erros como:
SSL certificate problem: unable to get local issuer certificate
SSL certificate problem: self signed certificate
certificate verify failed
Isso significa que:
- Não há certificado raiz no sistema,
- O certificado não é confiável, ou
- Foi instalado um certificado autoassinado sem cadeias confiáveis.
Passo 2. Atualize os certificados raiz
A causa mais comum é a falta ou desatualização de certificados raiz confiáveis.
Para CentOS / RHEL:
sudo yum install -y ca-certificates
sudo update-ca-trust force-enable
sudo update-ca-trust extract
Para Ubuntu / Debian:
sudo apt update
sudo apt install -y ca-certificates
sudo update-ca-certificates

Passo 3. Verifique o certificado manualmente
Você pode verificar a cadeia de certificados SSL usando o openssl:
openssl s_client -connect example.com:443

Se a saída mostrar verify error:num=20:unable to get local issuer certificate, significa que a cadeia está incompleta ou o cliente não possui uma CA confiável.
Passo 4. Adicione um certificado autoassinado
Se você usar seu próprio certificado (por exemplo, de uma VPN ou proxy próprio), será necessário adicioná-lo ao armazenamento confiável:
Copie o certificado para o armazenamento do sistema:
sudo cp my-ca.crt /etc/pki/ca-trust/source/anchors/
sudo update-ca-trust extract
Para Ubuntu:
sudo cp my-ca.crt /usr/local/share/ca-certificates/
sudo update-ca-certificates
Passo 5. Ignorar verificação (não recomendado)
Se o certificado estiver temporariamente indisponível ou você estiver em um ambiente isolado, é possível desativar a verificação temporariamente:
curl -k https://example.com

O parâmetro -k permite estabelecer conexão ignorando erros, porém pode não funcionar se o servidor tiver HSTS ativado!
git config --global http.sslVerify false
Não use isso em produção — compromete a segurança da conexão.
Windows
Passo 1. Verifique o texto do erro
O erro geralmente aparece assim: "SSL certificate problem: unable to get local issuer certificate certificate verify failed: unable to get local issuer certificate self signed certificate in certificate chain"
ou
"This site is not secure"
Passo 2. Atualize os certificados raiz
O Windows atualiza automaticamente os certificados raiz via Windows Update. Se as atualizações automáticas estiverem desativadas:
Certifique-se de que o serviço Windows Update (wuauserv) esteja habilitado.
Atualize manualmente o sistema:
control update
Ou via PowerShell:
Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force
Install-Module -Name PSWindowsUpdate -Force
Install-WindowsUpdate -AcceptAll -AutoReboot
Passo 3. Instale um certificado personalizado (autoassinado)
Se estiver usando proxy, rede corporativa ou servidor de teste com certificado SSL autoassinado:
Adicione o certificado manualmente:
- Clique duas vezes no arquivo .crt.
- Clique em Instalar certificado.
- Escolha: Computador local ou Colocar em: Autoridades de certificação raiz confiáveis.
Confirme a instalação.
Para instalar em nome do computador local, são necessários privilégios de administrador.
Passo 4. Para Git: confiança em certificados
O Git no Windows usa seu próprio curl e openssl e pode não reconhecer certificados do sistema. Para adicionar seu próprio .crt:
Coloque o certificado em uma pasta, por exemplo:
C:\Program Files\Git\mingw64\ssl\certs\my-ca.crt
Edite o arquivo:
C:\Program Files\Git\mingw64\ssl\cert.pem
Adicione o conteúdo do .crt ao final do arquivo.
Ou especifique manualmente:
git config --global http.sslCAInfo "C:/path/to/my-ca.crt"
Passo 5. Para Python / pip
Se ao instalar pacotes aparecer:
SSL: CERTIFICATE_VERIFY_FAILED
Use:
python -m pip install --trusted-host pypi.org --trusted-host files.pythonhosted.org package_name
Ou adicione o caminho para sua CA:
set SSL_CERT_FILE=C:\path\to\my-ca.crt
Passo 6. Desativar verificação temporariamente (não recomendado)
Para curl:
curl -k https://example.com
Para Git:
git config --global http.sslVerify false
O erro de certificado geralmente ocorre pela falta de certificados raiz confiáveis ou pelo uso de certificados autoassinados. Neste artigo, vimos como atualizar certificados raiz, adicionar os seus próprios e corrigir o erro com segurança.
Conclusão
Erros de certificado são um obstáculo comum ao trabalhar com serviços HTTPS em Linux e Windows. Normalmente acontecem por falta, desatualização ou não confiabilidade de certificados raiz, ou pelo uso de certificados autoassinados.
Atualizando certificados raiz, adicionando certificados personalizados ao armazenamento confiável ou configurando corretamente softwares como Git e Python, é possível resolver esses problemas com segurança. Embora seja possível ignorar a verificação SSL temporariamente, isso só deve ser usado em ambientes isolados ou de teste, já que compromete a segurança da conexão.
FAQ
- Q1: O que causa erros de certificado no Linux e no Windows?
Na maioria das vezes, por ausência ou desatualização de certificados raiz, certificados autoassinados ou cadeias de certificados incompletas. - Q2: Como atualizar certificados raiz no Linux?
No CentOS/RedHat:sudo yum install -y ca-certificates
sudo update-ca-trust force-enable[/code
sudo update-ca-trust extract
No Ubuntu/Debian:
sudo apt update
sudo apt install -y ca-certificates
sudo update-ca-certificates
- Q3: Como confiar em um certificado autoassinado?
Copie o certificado para o armazenamento confiável e atualize o banco de certificados. Exemplo no Ubuntu:sudo cp my-ca.crt /usr/local/share/ca-certificates/
sudo update-ca-certificates
- Q4: Posso ignorar a verificação de certificado?
Sim, com comandos como curl -k ou git config --global http.sslVerify false, mas não é recomendado em produção porque compromete a segurança. - Q5: Como corrigir erros de certificado no Git no Windows?
Coloque seu certificado .crt na pasta de certificados do Git ou configure o Git para usá-lo explicitamente:git config --global http.sslCAInfo "C:/path/to/my-ca.crt"
- Q6: Como corrigir erros de certificado no Python/pip?
Use a opção --trusted-host ou configure a variável de ambiente SSL_CERT_FILE:python -m pip install --trusted-host pypi.org --trusted-host files.pythonhosted.org package_name
set SSL_CERT_FILE=C:\path\to\my-ca.crt
- Q7: Por que não devo desativar a verificação SSL permanentemente?
Porque isso ignora verificações de certificado e deixa sua conexão vulnerável a ataques man-in-the-middle e outros riscos de segurança.