Sem KYC — sem ID, sem selfie, sem documentos. Pague com cripto: BTC, USDT, USDC, ETH, SOL, LTC
Idioma: Português
Comece agora

Referência de erro de proxy · Erros de conexão e TLS

SSL CERTIFICATE_VERIFY_FAILED via proxy

Erro no certificado TLS no cliente: a mensagem exata em cada ferramenta, as causas prováveis em ordem, e o conserto que funciona.

Última atualização: · 4 min de leitura

Resposta rápida

O que SSL: CERTIFICATE_VERIFY_FAILED significa com um proxy?

CERTIFICATE_VERIFY_FAILED significa que seu cliente não conseguiu validar o certificado TLS do site. Através de um proxy CONNECT como o gateway CrawlRelay, o TLS ocorre de ponta a ponta, então o proxy não é a causa. Verifique do seu lado: um bundle de CA desatualizado, antivírus ou firewall corporativo que inspeciona HTTPS, ou relógio do sistema errado. Nunca corrija com verify=False em produção.

SSL: CERTIFICATE_VERIFY_FAILED de relance

ErroSSL: CERTIFICATE_VERIFY_FAILED
TipoErro no certificado TLS no cliente
Enviado porSua biblioteca TLS, quando não consegue validar o certificado do site
Definido emX.509 path validation: RFC 5280; TLS 1.3: RFC 8446
Tentar novamente?Não. Corrija o trust store ou a rede
Primeira verificaçãoTeste a mesma URL sem o proxy na mesma máquina

O que SSL: CERTIFICATE_VERIFY_FAILED significa?

Durante o handshake TLS, o site envia uma cadeia de certificados. Seu cliente verifica contra uma lista de autoridades confiáveis, o trust store, e checa nomes e datas. Se alguma verificação falhar, ele para.

Com um túnel CONNECT, o proxy passa o handshake sem alterações, então o certificado que você vê é o do próprio site. Algo que insere seu próprio certificado, como software de inspeção, ou um trust store desatualizado na sua máquina, é a causa usual.

Como CERTIFICATE_VERIFY_FAILED aparece em Python, curl, Node.js e navegadores?

A mesma falha aparece de forma diferente em cada ferramenta. Estas são as mensagens para buscar nos seus logs:

  • Python: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate
  • Node.js: UNABLE_TO_GET_ISSUER_CERT_LOCALLY ou SELF_SIGNED_CERT_IN_CHAIN
  • curl: curl: (60) SSL certificate problem: unable to get local issuer certificate
  • Navegadores: NET::ERR_CERT_AUTHORITY_INVALID

O que causa CERTIFICATE_VERIFY_FAILED?

Mais provável inicialmente:

  • Um bundle de CA desatualizado, por exemplo um pacote certifi antigo no Python.
  • Inspeção HTTPS por antivírus, firewall corporativo ou proxy de depuração, que apresenta seu próprio certificado.
  • Relógio do sistema errado que faz certificados válidos parecerem expirados ou ainda não válidos.
  • Um site com cadeia quebrada, faltando um certificado intermediário.
  • Uma imagem de container sem o pacote de certificados CA do sistema.

Como diagnosticar CERTIFICATE_VERIFY_FAILED passo a passo?

  1. Execute a mesma requisição sem o proxy. Se também falhar, o proxy não está envolvido.
  2. Imprima o emissor do certificado com openssl s_client ou curl -v: um emissor nomeado como seu antivírus ou firewall indica interceptação.
  3. Verifique a data e hora do sistema.
  4. Atualize o bundle de CA e teste novamente.
Teste a URL com erro usando curl (porta HTTP, modo verbose)
# Use the URL that fails; with https://api.ipify.org instead, you test the gateway alone.
# "HTTP/1.1 200 Connection established" first, then the site's own status: the site answered.
curl -v -x http://USERNAME:[email protected]:7777 https://TARGET_URL

# Same test through the SOCKS5 port, with DNS resolved at the exit
curl -v --socks5-hostname gw.crawlrelay.com:7778 --proxy-user USERNAME:PASSWORD https://TARGET_URL

Como corrigir CERTIFICATE_VERIFY_FAILED?

  • Atualize certifi (pip install -U certifi) ou o pacote CA do seu sistema.
  • Adicione o certificado de inspeção da sua empresa ao trust store se sua rede exigir inspeção, ou execute o scraper fora dessa rede.
  • Corrija o relógio com sincronização via rede.
  • Instale certificados CA em imagens de container enxutas, por exemplo o pacote ca-certificates.
  • Não desative a verificação no código que envia credenciais ou coleta dados em que você confia.

Devo tentar novamente após CERTIFICATE_VERIFY_FAILED?

Não tente novamente: o mesmo trust store falha da mesma forma. Corrija o trust store, o relógio ou o caminho da rede, e então execute novamente.

Como SSL: CERTIFICATE_VERIFY_FAILED se aplica ao CrawlRelay?

A porta HTTP do CrawlRelay faz túneis HTTPS com CONNECT, então o certificado que seu cliente verifica é o que o site envia. Se o erro aparece só pelo gateway e nunca sem ele, entre em contato com o suporte com o hostname alvo e o erro completo para que possamos verificar o lado de saída.

Gateway: gw.crawlrelay.com, porta 7777 (HTTP, HTTPS via CONNECT) e porta 7778 (SOCKS5). Formato do usuário: USERNAME-country-{cc}-state-{state}-city-{city}-zip-{zip}-asn-{asn}-session-{id}-ttl-{minutes}. Relacionado: SSL: WRONG_VERSION_NUMBER · Connection reset · Guia Python.

SSL: CERTIFICATE_VERIFY_FAILED: perguntas que desenvolvedores fazem

Um proxy pode causar erros SSL?

Um proxy interceptador pode, porque apresenta seu próprio certificado. Um proxy túnel CONNECT não pode, porque ele só encaminha bytes criptografados e nunca vê o conteúdo do handshake. Execute a mesma requisição sem o proxy: se o erro continuar, a causa está na sua máquina ou rede.

É seguro usar verify=False para scraping?

Não como correção. Isso esconde interceptação e cadeias quebradas, e um atacante no caminho poderia ler ou alterar seu tráfego, incluindo tokens e cookies. Use somente para um teste rápido local, e nunca em um trabalho que roda sem supervisão ou envia credenciais.

Por que falha no Docker mas funciona no meu laptop?

Imagens de container enxutas muitas vezes não vêm com certificados CA, então nenhum certificado pode ser validado. Instale o pacote CA do sistema na imagem, ou use o bundle certifi no Python. Verifique também se o relógio do container está correto.

Outros erros de proxy nesta referência

Códigos de status HTTP

Erros no navegador e cliente

Erros de conexão e TLS

Proxies residenciais com documentação que cobre os casos de falha

CrawlRelay proxies residenciais a partir de US$ 0,50/GB, tráfego que nunca expira.

A partir de US$ 0,50/GB · sem KYC

Comece agora