# SSL WRONG_VERSION_NUMBER via proxy: la soluzione

> [SSL: WRONG_VERSION_NUMBER] tramite un proxy di solito significa un URL proxy https:// su una porta proxy HTTP semplice. La soluzione in una riga per Python e Node.

- URL: https://crawlrelay.com/it/docs/errors/ssl-wrong-version-number/
- Ultimo aggiornamento: 2026-10-13
- Publisher: CrawlRelay (https://crawlrelay.com)

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

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

| Attributo | Valore |
| --- | --- |
| Errore | SSL: WRONG_VERSION_NUMBER |
| Tipo | Errore TLS nel client |
| Inviato da | La tua libreria TLS, quando l'altra parte non parla TLS |
| Definito in | TLS 1.3: RFC 8446; HTTP proxy CONNECT: RFC 9110, section 9.3.6 |
| Riprovarlo? | No. È un errore di configurazione |
| Prima verifica | Controlla 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)*

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

## 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](https://crawlrelay.com/it/docs/errors/ssl-certificate-verify-failed/) · [Impossibile connettersi al proxy](https://crawlrelay.com/it/docs/errors/cannot-connect-to-proxy/) · [Guida Python](https://crawlrelay.com/it/docs/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

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

**Proxy residenziali con documentazione che copre i casi di errore** Proxy residenziali CrawlRelay da 0,50 USD/GB, traffico che non scade mai. [Vedi i prezzi](https://crawlrelay.com/it/pricing/) · [Avvio rapido](https://crawlrelay.com/it/docs/)

---

CrawlRelay: CrawlRelay è un servizio di proxy residenziali rotanti e proxy mobili 4G/5G primo per sviluppatori: traffico pay-as-you-go senza scadenza da 0,50 USD/GB, pagato in crypto, senza caricamento documenti. Senza KYC — niente documento, selfie o altri documenti. Paga in crypto.
