# SSL WRONG_VERSION_NUMBER via proxy: solução

> [SSL: WRONG_VERSION_NUMBER] via proxy geralmente indica URL https:// de proxy numa porta HTTP simples. A correção rápida para Python e Node.

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

Erro 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: WRONG_VERSION_NUMBER significa com um proxy?**

**[SSL: WRONG_VERSION_NUMBER]** via proxy quase sempre indica que seu cliente iniciou handshake TLS com algo que respondeu texto simples. A causa comum é URL `https://` apontando para porta HTTP comum. Com CrawlRelay, escreva `http://` antes do endereço do gateway, para alvos HTTP e HTTPS; o HTTPS do site continua dentro do túnel.

## SSL: WRONG_VERSION_NUMBER de relance

| Atributo | Valor |
| --- | --- |
| Erro | SSL: WRONG_VERSION_NUMBER |
| Tipo | Erro TLS no cliente |
| Enviado por | Sua biblioteca TLS, quando o outro lado não fala TLS |
| Definido em | TLS 1.3: RFC 8446; HTTP proxy CONNECT: RFC 9110, section 9.3.6 |
| Tentar novamente? | Não. É erro de configuração |
| Primeira verificação | Veja o esquema na frente da URL do proxy |

## O que SSL: WRONG_VERSION_NUMBER significa?

TLS começa com um registro de handshake. Se os bytes retornados forem uma resposta HTTP, a biblioteca TLS lê número de versão inválido e para. Python mostra `WRONG_VERSION_NUMBER`; texto varia com OpenSSL e cliente.

O esquema da URL do proxy decide como seu cliente fala com o proxy. `http://` é HTTP simples com túnel `CONNECT` e TLS com o site. `https://` é TLS com o proxy, que só funciona se a porta espera TLS.

## Como SSL: WRONG_VERSION_NUMBER 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 requests / urllib3 2.x:** `SSLError(SSLError(1, '[SSL: WRONG_VERSION_NUMBER] wrong version number'))` dentro de `ProxyError`
- **httpx:** `httpx.ConnectError: [SSL: WRONG_VERSION_NUMBER] wrong version number`
- **curl:** `curl: (35) ... wrong version number` quando você escreve `-x https://` para proxy simples
- **Node.js:** `EPROTO ... wrong version number` na mensagem de erro

## O que causa SSL: WRONG_VERSION_NUMBER?

Mais provável inicialmente:

- **`https://` na frente do endereço do proxy** em porta que usa HTTP simples. O caso mais comum.
- **Configurações copiadas** de provedor cujo proxy espera TLS.
- **`https://` em URL com porta 80**, ou `http://` em porta de site que espera TLS, fora de proxy.
- **Variável de ambiente** como `HTTPS_PROXY=https://...` herdada pelo seu código.

## Como diagnosticar SSL: WRONG_VERSION_NUMBER passo a passo?

1. Imprima a URL do proxy usada e cheque o esquema.
2. Verifique no ambiente `HTTPS_PROXY` e `ALL_PROXY`.
3. Rode o teste curl abaixo com `-x http://` e confirme que funciona.
4. Se curl funciona e código não, seu código ou ambiente ainda usa `https://`.

*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 SSL: WRONG_VERSION_NUMBER?

- **Use `http://` na URL do proxy** em todas as chaves: `{"http": "http://...", "https": "http://..."}`.
- **Mantenha a verificação TLS ligada.** A correção é o esquema, não `verify=False`.
- **Corrija variável de ambiente** em vez de sobrescrever em script.

## Devo tentar novamente após SSL: WRONG_VERSION_NUMBER?

Nunca reexecute esse erro: toda tentativa falha igual. É ajuste de configuração de um caractere.

## Como SSL: WRONG_VERSION_NUMBER se aplica ao CrawlRelay?

A porta HTTP do CrawlRelay é proxy HTTP simples que carrega sites HTTPS por túneis `CONNECT`. TLS vai fim a fim entre seu cliente e o site dentro do túnel; o gateway nunca precisa da URL de proxy `https://`.

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: [Erro na verificação do certificado SSL](https://crawlrelay.com/pt/docs/errors/ssl-certificate-verify-failed/) · [Não foi possível conectar ao proxy](https://crawlrelay.com/pt/docs/errors/cannot-connect-to-proxy/) · [Guia Python](https://crawlrelay.com/pt/docs/python/).

## SSL: WRONG_VERSION_NUMBER: perguntas que desenvolvedores fazem

### Meu tráfego não fica sem criptografia se usar URL proxy http://?

Não para sites HTTPS. O esquema `http://` cobre só a curta troca CONNECT com o proxy, incluindo suas credenciais. Após isso, seu cliente roda TLS direto com o site no túnel, e o proxy só encaminha bytes criptografados. Sites plain `http://` ficam sem criptografia com ou sem proxy.

### Por que isso começou após atualizar urllib3?

urllib3 2.x suporta proxies HTTPS, então considera literal URL `https://` e inicia TLS com proxy. Configurações antigas às vezes funcionavam por acidente com esquema errado. Use `http://` para porta proxy HTTP simples e erro some.

### Devo usar verify=False para eliminar o erro?

Não. Desligar verificação de certificado não corrige esquema errado, e expõe a interceptação em cada requisição. Corrija esquema da URL do proxy. Mantenha verificação em produção.

## 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.
