Zonder KYC — geen ID, geen selfie, geen documenten. Betaal met crypto: BTC, USDT, USDC, ETH, SOL, LTC
Taal: Nederlands
Aan de slag

Proxy foutreferentie · Verbindings- en TLS-fouten

SSL WRONG_VERSION_NUMBER via een proxy: de oplossing

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

Laatst bijgewerkt: · 4 min leestijd

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

FoutSSL: WRONG_VERSION_NUMBER
TypeTLS-fout in de client
Verzonden doorJouw TLS-bibliotheek, als de andere kant geen TLS spreekt
Gedefinieerd inTLS 1.3: RFC 8446; HTTP proxy CONNECT: RFC 9110, section 9.3.6
Opnieuw proberen?Nee. Het is een configuratiefout
Eerst controlerenKijk 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)
# 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

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 · Kan geen verbinding maken met proxy · Python-gids.

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

HTTP-statuscodes

Browser- en clientfouten

Verbindings- en TLS-fouten

Residentiële proxy's met documentatie die de faalgevallen beschrijft

CrawlRelay residentiële proxy's van US$ 0,50/GB, verkeer dat nooit verloopt.

Vanaf US$ 0,50/GB · zonder KYC

Aan de slag