# Błąd SSL WRONG_VERSION_NUMBER przez proxy: jak naprawić

> [SSL: WRONG_VERSION_NUMBER] przez proxy zwykle oznacza https:// proxy na porcie zwykłego HTTP proxy. Jednozdaniowa naprawa dla Pythona i Node.

- URL: https://crawlrelay.com/pl/docs/errors/ssl-wrong-version-number/
- Ostatnia aktualizacja: 2026-10-13
- Publisher: CrawlRelay (https://crawlrelay.com)

Błąd TLS po stronie klienta: dokładny komunikat w każdym narzędziu, możliwe przyczyny w kolejności oraz działające rozwiązanie.

**Szybka odpowiedź — Co oznacza SSL: WRONG_VERSION_NUMBER w kontekście proxy?**

**[SSL: WRONG_VERSION_NUMBER]** przez proxy niemal zawsze oznacza, że klient rozpoczął handshake TLS z czymś, co odpowiedziało zwykłym tekstem. Zwykła przyczyna to URL proxy `https://` wskazujący na port zwykłego proxy HTTP. W CrawlRelay wpisz `http://` przed adresem bramy dla celów HTTP i HTTPS; HTTPS strony działa nadal przez tunel.

## SSL: WRONG_VERSION_NUMBER w skrócie

| Atrybut | Wartość |
| --- | --- |
| Błąd | SSL: WRONG_VERSION_NUMBER |
| Typ | Błąd TLS po stronie klienta |
| Wysłane przez | Twoja biblioteka TLS, gdy strona po drugiej stronie nie używa TLS |
| Zdefiniowano w | TLS 1.3: RFC 8446; HTTP proxy CONNECT: RFC 9110, section 9.3.6 |
| Spróbować ponownie? | Nie. To błąd konfiguracji |
| Najpierw sprawdź | Sprawdź schemat przed adresem proxy |

## Co oznacza SSL: WRONG_VERSION_NUMBER?

TLS zaczyna się od rekordu handshake. Jeśli dane zwrócone są odpowiedzią HTTP zamiast tego, biblioteka TLS czyta nonsensowny numer wersji i się zatrzymuje. Python pokazuje `WRONG_VERSION_NUMBER`; treść różni się zależnie od wersji OpenSSL i klienta.

Schemat URL proxy decyduje, jak klient komunikuje się z proxy. `http://` to zwykły HTTP do proxy, potem tunel `CONNECT` i TLS z witryną. `https://` to TLS z samym proxy, co działa tylko gdy proxy oczekuje TLS na tym porcie.

## Jak wygląda SSL: WRONG_VERSION_NUMBER w Python, curl, Node.js i przeglądarkach?

Ten sam błąd wyświetla się inaczej w każdym narzędziu. Oto komunikaty, które warto wyszukać w logach:

- **Python requests / urllib3 2.x:** `SSLError(SSLError(1, '[SSL: WRONG_VERSION_NUMBER] wrong version number'))` opakowany w `ProxyError`
- **httpx:** `httpx.ConnectError: [SSL: WRONG_VERSION_NUMBER] wrong version number`
- **curl:** `curl: (35) ... wrong version number` gdy wpiszesz `-x https://` dla zwykłego proxy
- **Node.js:** `EPROTO ... wrong version number` w komunikacie o błędzie

## Co powoduje SSL: WRONG_VERSION_NUMBER?

Najczęściej na początku:

- **`https://` przed adresem proxy** z portem zwykłego HTTP proxy. Najczęstszy przypadek.
- **Skopiowane ustawienia** od dostawcy, którego port proxy czeka na TLS.
- **`https://` na URL z portem 80**, lub `http://` na porcie strony oczekującej TLS, poza proxy.
- **Zmienne środowiskowe** takie jak `HTTPS_PROXY=https://...` dziedziczone przez Twój kod.

## Jak krok po kroku zdiagnozować SSL: WRONG_VERSION_NUMBER?

1. Wypisz URL proxy, którego używa Twój kod i sprawdź schemat.
2. Sprawdź zmienne środowiskowe `HTTPS_PROXY` i `ALL_PROXY`.
3. Uruchom poniższy test curl z `-x http://` i potwierdź działanie.
4. Jeśli curl działa, a Twój kod nie, to kod lub środowisko używa jeszcze `https://`.

*Przetestuj nie działający URL za pomocą curl (port HTTP, tryb 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
```

## Jak naprawić SSL: WRONG_VERSION_NUMBER?

- **Użyj `http://` jako URL proxy** w każdym kluczu: `{"http": "http://...", "https": "http://..."}`.
- **Zostaw włączoną weryfikację TLS.** Naprawa to schemat, nie `verify=False`.
- **Popraw zmienną środowiskową** zamiast nadpisywać ją w skrypcie.

## Czy warto ponawiać próbę po SSL: WRONG_VERSION_NUMBER?

Nie powtarzaj tego błędu: każda próba kończy się tak samo. To naprawa jednym znakiem w konfiguracji.

## Jak SSL: WRONG_VERSION_NUMBER odnosi się do CrawlRelay?

HTTP port CrawlRelay to zwykły port HTTP proxy, który przesyła strony HTTPS przez tunele `CONNECT`. TLS jest end-to-end między klientem a witryną wewnątrz tunelu, więc brama nie potrzebuje adresu proxy `https://`.

Gateway: `gw.crawlrelay.com`, port 7777 (HTTP, HTTPS przez CONNECT) i port 7778 (SOCKS5). Format nazwy użytkownika: `USERNAME-country-{cc}-state-{state}-city-{city}-zip-{zip}-asn-{asn}-session-{id}-ttl-{minutes}`. Powiązane: [Błąd weryfikacji certyfikatu SSL](https://crawlrelay.com/pl/docs/errors/ssl-certificate-verify-failed/) · [Nie można połączyć się z proxy](https://crawlrelay.com/pl/docs/errors/cannot-connect-to-proxy/) · [Python guide](https://crawlrelay.com/pl/docs/python/).

## SSL: WRONG_VERSION_NUMBER: pytania, które zadają deweloperzy

### Czy mój ruch jest niezaszyfrowany, jeśli używam adresu proxy http://?

Nie dla stron HTTPS. Schemat `http://` dotyczy tylko krótkiej wymiany CONNECT z proxy, w tym Twoich danych proxy. Potem klient prowadzi TLS bezpośrednio z witryną w tunelu, a proxy tylko przekazuje zaszyfrowane dane. Zwykłe strony `http://` są niezaszyfrowane z proxy lub bez niego.

### Dlaczego to się zaczęło po aktualizacji urllib3?

urllib3 2.x obsługuje HTTPS proxy, więc literalnie potraktuje URL proxy `https://` i zacznie TLS z proxy. Starsze konfiguracje czasem działały przypadkowo z niewłaściwym schematem. Wpisz `http://` dla zwykłych portów HTTP proxy, aby błąd zniknął.

### Czy powinienem ustawić verify=False, aby rozwiązać błąd?

Nie. Wyłączanie sprawdzania certyfikatów nie naprawi złego schematu i naraża Cię na podsłuch przy każdym żądaniu. Popraw schemat URL proxy. W produkcji trzymaj weryfikację włączoną.

## Inne błędy proxy w tym odniesieniu

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

**Proxy rezydencjalne z dokumentacją opisującą przypadki błędów** CrawlRelay proxy rezydencjalne od 0,50 USD/GB, ruch, który nigdy nie wygasa. [Zobacz ceny](https://crawlrelay.com/pl/pricing/) · [Szybki start](https://crawlrelay.com/pl/docs/)

---

CrawlRelay: CrawlRelay to serwis proxy rezydencjalne i mobilne proxy 4G/5G z rotacją, stworzony dla programistów i potoków danych AI: ruch bez wygasania w modelu pay-as-you-go od 0,50 USD/GB, płatny w kryptowalutach, bez konieczności przesyłania dokumentów. Bez KYC — brak dowodu, selfie i dokumentów. Płać w kryptowalutach.
