# SSL WRONG_VERSION_NUMBER via een proxy: de oplossing

> [SSL: WRONG_VERSION_NUMBER] via een proxy betekent meestal een https:// proxy-URL op een plain HTTP proxy-poort. De éénregelige fix voor Python en Node.

- URL: https://crawlrelay.com/nl/docs/errors/ssl-wrong-version-number/
- Laatst bijgewerkt: 2026-10-13
- Publisher: CrawlRelay (https://crawlrelay.com)

TLS-fout in de client: het exacte bericht in elk hulpmiddel, de waarschijnlijke oorzaken in volgorde, en de oplossing die werkt.

**Kort antwoord — Wat betekent SSL: WRONG_VERSION_NUMBER bij een proxy?**

**[SSL: WRONG_VERSION_NUMBER]** via een proxy betekent bijna altijd dat je client een TLS-handshake begon met iets dat in platte tekst antwoordde. De gebruikelijke oorzaak is een `https://` proxy-URL die naar een plain HTTP proxy-poort wijst. Bij CrawlRelay schrijf je `http://` vóór het gateway-adres voor zowel HTTP- als HTTPS-doelen; de HTTPS-site zelf werkt nog steeds via de tunnel.

## SSL: WRONG_VERSION_NUMBER in één oogopslag

| Attribuut | Waarde |
| --- | --- |
| Fout | SSL: WRONG_VERSION_NUMBER |
| Type | TLS-fout in de client |
| Verzonden door | Jouw TLS-bibliotheek, als de andere kant geen TLS spreekt |
| Gedefinieerd in | TLS 1.3: RFC 8446; HTTP proxy CONNECT: RFC 9110, section 9.3.6 |
| Opnieuw proberen? | Nee. Het is een configuratiefout |
| Eerst controleren | Kijk naar het schema vóór je proxy-URL |

## Wat betekent SSL: WRONG_VERSION_NUMBER?

TLS begint met een handshake-record. Als wat terugkomt een HTTP-respons is, leest de TLS-bibliotheek een nonsense versienummer en stopt. Python meldt `WRONG_VERSION_NUMBER`; de exacte tekst hangt af van de OpenSSL-versie en client.

Het proxy-URL schema bepaalt hoe jouw client met de proxy praat. `http://` betekent plain HTTP naar de proxy, gevolgd door een `CONNECT` tunnel en TLS met de website. `https://` betekent TLS direct met de proxy, wat alleen werkt als de proxy-poort TLS verwacht.

## Hoe ziet SSL: WRONG_VERSION_NUMBER eruit in Python, curl, Node.js en browsers?

Dezelfde fout verschijnt anders in elk hulpmiddel. Dit zijn de berichten om in je logs te zoeken:

- **Python requests / urllib3 2.x:** `SSLError(SSLError(1, '[SSL: WRONG_VERSION_NUMBER] wrong version number'))` verpakt in een `ProxyError`
- **httpx:** `httpx.ConnectError: [SSL: WRONG_VERSION_NUMBER] wrong version number`
- **curl:** `curl: (35) ... wrong version number` als je `-x https://` schrijft voor een plain proxy
- **Node.js:** `EPROTO ... wrong version number` in de foutmelding

## Wat veroorzaakt SSL: WRONG_VERSION_NUMBER?

Waarschijnlijk eerst:

- **`https://` vóór het proxy-adres** op een poort die plain HTTP spreekt. Dit is het meest voorkomende geval.
- **Settings gekopieerd en geplakt** van een provider waarvan de proxy-poort TLS verwacht.
- **`https://` op een URL met poort 80**, of `http://` op een sitepoort die TLS verwacht, buiten enige proxy.
- **Een omgevingsvariabele** zoals `HTTPS_PROXY=https://...` die je code erft.

## Hoe diagnosticeer ik SSL: WRONG_VERSION_NUMBER stap voor stap?

1. Print de proxy-URL die je code gebruikt en controleer het schema.
2. Check de omgeving op `HTTPS_PROXY` en `ALL_PROXY`.
3. Voer de curl-test hieronder uit met `-x http://` en bevestig dat het werkt.
4. Als curl werkt en je code niet, gebruikt je code of omgeving nog steeds `https://`.

*Test de foutieve URL met curl (HTTP-poort, uitvoerig)*

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

## Hoe los ik SSL: WRONG_VERSION_NUMBER op?

- **Gebruik `http://` voor de proxy-URL** in elke sleutel: `{"http": "http://...", "https": "http://..."}`.
- **Laat TLS-verificatie aan staan.** De fix is het schema, niet `verify=False`.
- **Fix de omgevingsvariabele** in plaats van overschrijven in één script.

## Moet ik opnieuw proberen na SSL: WRONG_VERSION_NUMBER?

Probeer deze fout nooit opnieuw: elke poging faalt op dezelfde manier. Het is een configuratiefout van één karakter.

## Hoe geldt SSL: WRONG_VERSION_NUMBER voor CrawlRelay?

CrawlRelay’s HTTP-poort is een plain HTTP proxy-poort die HTTPS-sites door `CONNECT` tunnels draagt. TLS loopt end-to-end tussen je client en de site binnen de tunnel, dus de gateway heeft nooit een `https://` proxy-URL nodig.

Gateway: `gw.crawlrelay.com`, poort 7777 (HTTP, HTTPS via CONNECT) en poort 7778 (SOCKS5). Gebruikersnaamformaat: `USERNAME-country-{cc}-state-{state}-city-{city}-zip-{zip}-asn-{asn}-session-{id}-ttl-{minutes}`. Gerelateerd: [SSL certificate verify failed](https://crawlrelay.com/nl/docs/errors/ssl-certificate-verify-failed/) · [Kan geen verbinding maken met proxy](https://crawlrelay.com/nl/docs/errors/cannot-connect-to-proxy/) · [Python-gids](https://crawlrelay.com/nl/docs/python/).

## SSL: WRONG_VERSION_NUMBER: vragen die ontwikkelaars stellen

### Is mijn verkeer onbeveiligd als ik een http:// proxy-URL gebruik?

Niet bij HTTPS-websites. Het `http://` schema betreft alleen de korte CONNECT-uitwisseling met de proxy, inclusief je proxy-inloggegevens. Daarna loopt TLS direct van client naar site binnen de tunnel en fungeert de proxy alleen als doorgeefluik voor versleutelde bytes. Plain `http://` sites zijn onversleuteld met of zonder proxy.

### Waarom begon dit na het updaten van urllib3?

Urllib3 2.x ondersteunt HTTPS-proxies, dus accepteert een `https://` proxy-URL letterlijk en start TLS met de proxy. Oudere setups werkten soms per ongeluk met het verkeerde schema. Schrijf `http://` voor plain HTTP proxy-poorten en de fout verdwijnt.

### Moet ik verify=False zetten om de fout te verhelpen?

Nee. Certificaatchecks uitzetten lost geen verkeerd schema op en maakt je kwetsbaar voor onderschepping bij elke aanvraag. Fix het proxy-URL schema. Laat verificatie aan in productie.

## Andere proxyfouten in deze referentie

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

**Residentiële proxy's met documentatie die de faalgevallen beschrijft** CrawlRelay residentiële proxy's van US$ 0,50/GB, verkeer dat nooit verloopt. [Zie prijslijst](https://crawlrelay.com/nl/pricing/) · [Snelle start](https://crawlrelay.com/nl/docs/)

---

CrawlRelay: CrawlRelay is een developer-first dienst met roterende residentiële proxy's en mobiele 4G-proxy's voor scrapers en AI-datastromen: niet-vervalverkeer op basis van pay-as-you-go vanaf US$ 0,50/GB, betaald in crypto, zonder ID-upload. Zonder KYC — geen ID, geen selfie, geen documenten. Betaal met crypto.
