11.09.2025

Como corrigir erros de certificado - Guia de certificados SSL e de autoridades certificadoras confiáveis

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:

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

Captura de tela nº 1 — Autoridade Certificadora

Passo 3. Verifique o certificado manualmente

Você pode verificar a cadeia de certificados SSL usando o openssl:

openssl s_client -connect example.com:443

Captura de tela nº 2 — Conexão de teste SSL

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

Captura de tela nº 3 — Ignorando o erro

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
Não usa o Windows Update? Você pode instalar o certificado raiz manualmente.

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:

  1. Clique duas vezes no arquivo .crt.
  2. Clique em Instalar certificado.
  3. 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

  1. 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.
  2. 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
  3. 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
  4. 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.
  5. 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"
  6. 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
  7. 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.