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 WRONG_VERSION_NUMBER via proxy: solução

Erro 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: 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

ErroSSL: WRONG_VERSION_NUMBER
TipoErro TLS no cliente
Enviado porSua biblioteca TLS, quando o outro lado não fala TLS
Definido emTLS 1.3: RFC 8446; HTTP proxy CONNECT: RFC 9110, section 9.3.6
Tentar novamente?Não. É erro de configuração
Primeira verificaçãoVeja 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)
# 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 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 · Não foi possível conectar ao proxy · Guia 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

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