# SSL CERTIFICATE_VERIFY_FAILED via proxy

> SSL CERTIFICATE_VERIFY_FAILED ao raspar através de um proxy: bundles antigos de CA, antivírus interceptador ou firewalls corporativos, erros de relógio. Correções seguras apenas.

- URL: https://crawlrelay.com/pt/docs/errors/ssl-certificate-verify-failed/
- Última atualização: 2026-10-13
- Publisher: CrawlRelay (https://crawlrelay.com)

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

**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

| Atributo | Valor |
| --- | --- |
| Erro | SSL: CERTIFICATE_VERIFY_FAILED |
| Tipo | Erro no certificado TLS no cliente |
| Enviado por | Sua biblioteca TLS, quando não consegue validar o certificado do site |
| Definido em | X.509 path validation: RFC 5280; TLS 1.3: RFC 8446 |
| Tentar novamente? | Não. Corrija o trust store ou a rede |
| Primeira verificação | Teste 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)*

```bash
# 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:PASSWORD@gw.crawlrelay.com: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](https://crawlrelay.com/pt/docs/errors/ssl-wrong-version-number/) · [Connection reset](https://crawlrelay.com/pt/docs/errors/connection-reset/) · [Guia Python](https://crawlrelay.com/pt/docs/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

- [401 Unauthorized vs 407](https://crawlrelay.com/pt/docs/errors/401-unauthorized/)
- [403 Forbidden](https://crawlrelay.com/pt/docs/errors/403-forbidden/)
- [407 Proxy Authentication Required](https://crawlrelay.com/pt/docs/errors/407-proxy-authentication-required/)
- [429 Too Many Requests](https://crawlrelay.com/pt/docs/errors/429-too-many-requests/)
- [502 Bad Gateway](https://crawlrelay.com/pt/docs/errors/502-bad-gateway/)
- [503 Service Unavailable](https://crawlrelay.com/pt/docs/errors/503-service-unavailable/)
- [504 Gateway Timeout](https://crawlrelay.com/pt/docs/errors/504-gateway-timeout/)
- [Cannot connect to proxy (ProxyError)](https://crawlrelay.com/pt/docs/errors/cannot-connect-to-proxy/)
- [Connection reset by peer (ECONNRESET)](https://crawlrelay.com/pt/docs/errors/connection-reset/)
- [ERR_PROXY_CONNECTION_FAILED](https://crawlrelay.com/pt/docs/errors/err-proxy-connection-failed/)
- [ERR_TUNNEL_CONNECTION_FAILED](https://crawlrelay.com/pt/docs/errors/err-tunnel-connection-failed/)
- [Read timed out (ReadTimeout)](https://crawlrelay.com/pt/docs/errors/read-timeout/)
- [SOCKS5 proxy errors](https://crawlrelay.com/pt/docs/errors/socks5-proxy-errors/)
- [SSL: CERTIFICATE_VERIFY_FAILED](https://crawlrelay.com/pt/docs/errors/ssl-certificate-verify-failed/)
- [SSL: WRONG_VERSION_NUMBER](https://crawlrelay.com/pt/docs/errors/ssl-wrong-version-number/)

**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. [Veja os preços](https://crawlrelay.com/pt/pricing/) · [Início rápido](https://crawlrelay.com/pt/docs/)

---

CrawlRelay: CrawlRelay é um serviço proxy residencial rotativo e proxies móveis 4G/5G para desenvolvedores, para scrapers e pipelines de dados de IA: tráfego pay-as-you-go que não expira a partir de US$ 0,50/GB, pago com cripto, sem upload de documento. Sem KYC — sem ID, sem selfie, sem documentos. Pague com cripto.
