Senza KYC — niente documento, selfie o altri documenti. Paga in crypto: BTC, USDT, USDC, ETH, SOL, LTC
Lingua: Italiano
Inizia ora

Riferimento errori proxy · Errori di connessione e TLS

SSL WRONG_VERSION_NUMBER via proxy: la soluzione

Errore TLS nel client: il messaggio esatto in ogni strumento, le cause probabili in ordine e la soluzione che funziona.

Ultimo aggiornamento: · 4 minuti di lettura

Risposta rapida

Cosa significa SSL: WRONG_VERSION_NUMBER con un proxy?

[SSL: WRONG_VERSION_NUMBER] tramite un proxy quasi sempre significa che il client ha iniziato un handshake TLS con qualcosa che ha risposto in testo semplice. La causa più comune è un URL proxy https:// che punta a una porta proxy HTTP semplice. Con CrawlRelay, scrivi http:// davanti all'indirizzo gateway per destinazioni HTTP e HTTPS; l'HTTPS del sito funziona comunque attraverso il tunnel.

SSL: WRONG_VERSION_NUMBER a colpo d'occhio

ErroreSSL: WRONG_VERSION_NUMBER
TipoErrore TLS nel client
Inviato daLa tua libreria TLS, quando l'altra parte non parla TLS
Definito inTLS 1.3: RFC 8446; HTTP proxy CONNECT: RFC 9110, section 9.3.6
Riprovarlo?No. È un errore di configurazione
Prima verificaControlla lo schema davanti all’URL del proxy

Cosa significa SSL: WRONG_VERSION_NUMBER?

TLS inizia con un record handshake. Se i byte che tornano sono una risposta HTTP invece, la libreria TLS legge un numero versione senza senso e si interrompe. Python riporta WRONG_VERSION_NUMBER; la formulazione esatta varia con la versione di OpenSSL e il client.

Lo schema dell'URL proxy decide come il tuo client comunica col proxy. http:// significa HTTP semplice verso il proxy, seguito da un tunnel CONNECT e TLS col sito. https:// significa TLS verso il proxy stesso, possibile solo se la porta proxy lo supporta.

Com'è SSL: WRONG_VERSION_NUMBER in Python, curl, Node.js e browser?

Lo stesso errore si presenta in modo diverso in ogni strumento. Questi sono i messaggi da cercare nei log:

  • Python requests / urllib3 2.x: SSLError(SSLError(1, '[SSL: WRONG_VERSION_NUMBER] wrong version number')) racchiuso in un ProxyError
  • httpx: httpx.ConnectError: [SSL: WRONG_VERSION_NUMBER] wrong version number
  • curl: curl: (35) ... wrong version number se scrivi -x https:// per un proxy semplice
  • Node.js: EPROTO ... wrong version number nel messaggio d'errore

Cosa causa SSL: WRONG_VERSION_NUMBER?

Probabilmente prima:

  • https:// davanti all'indirizzo proxy su una porta che parla HTTP semplice. Questo è il caso più comune.
  • Impostazioni copiate/incollate da un provider il cui proxy si aspetta TLS.
  • https:// su un URL con porta 80, o http:// su porta sito che si aspetta TLS, fuori da ogni proxy.
  • Una variabile d'ambiente come HTTPS_PROXY=https://... ereditata dal tuo codice.

Come diagnostico SSL: WRONG_VERSION_NUMBER passo dopo passo?

  1. Stampa l'URL proxy che il tuo codice usa e controlla lo schema.
  2. Controlla l'ambiente per HTTPS_PROXY e ALL_PROXY.
  3. Esegui il test curl qui sotto con -x http:// e conferma che funziona.
  4. Se curl funziona e il tuo codice no, il tuo codice o ambiente usa ancora https://.
Testa l'URL che fallisce con curl (porta HTTP, 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

Come risolvo SSL: WRONG_VERSION_NUMBER?

  • Usa http:// per l'URL del proxy in ogni chiave: {"http": "http://...", "https": "http://..."}.
  • Lascia la verifica TLS attiva. La soluzione è lo schema, non verify=False.
  • Correggi la variabile d'ambiente invece di sovrascriverla in uno script.

Devo riprovare dopo SSL: WRONG_VERSION_NUMBER?

Mai riprovare questo errore: ogni tentativo fallisce allo stesso modo. È una correzione di configurazione di un solo carattere.

Come si applica SSL: WRONG_VERSION_NUMBER a CrawlRelay?

La porta HTTP di CrawlRelay è una porta proxy HTTP semplice che trasporta siti HTTPS attraverso tunnel CONNECT. Il TLS funziona end-to-end tra il tuo client e il sito dentro il tunnel, quindi il gateway non ha mai bisogno di un URL proxy https://.

Gateway: gw.crawlrelay.com, porta 7777 (HTTP, HTTPS tramite CONNECT) e porta 7778 (SOCKS5). Formato username: USERNAME-country-{cc}-state-{state}-city-{city}-zip-{zip}-asn-{asn}-session-{id}-ttl-{minutes}. Correlato: Errore di verifica certificato SSL · Impossibile connettersi al proxy · Guida Python.

SSL: WRONG_VERSION_NUMBER: domande frequenti dagli sviluppatori

Il mio traffico non è criptato se uso un URL proxy http://?

Non per siti HTTPS. Lo schema http:// copre solo il breve scambio CONNECT col proxy, che include le tue credenziali. Dopo di che, il client esegue TLS direttamente col sito dentro il tunnel, e il proxy inoltra solo byte criptati. I siti http:// semplici sono non criptati sia con che senza proxy.

Perché è cominciato dopo l'aggiornamento di urllib3?

urllib3 2.x supporta proxy HTTPS, quindi prende alla lettera un URL proxy https:// e inizia TLS col proxy. Configurazioni più vecchie a volte funzionavano per caso con lo schema sbagliato. Scrivi http:// per porte proxy HTTP semplici e l’errore scompare.

Devo mettere verify=False per eliminare l’errore?

No. Disattivare i controlli di certificato non risolve uno schema sbagliato, e ti espone a intercettazioni su ogni richiesta. Correggi lo schema dell’URL proxy. Mantieni attiva la verifica in produzione.

Altri errori proxy in questo riferimento

Codici di stato HTTP

Errori del browser e client

Errori di connessione e TLS

Proxy residenziali con documentazione che copre i casi di errore

Proxy residenziali CrawlRelay da 0,50 USD/GB, traffico che non scade mai.

Da 0,50 USD/GB · senza KYC

Inizia ora