Hızlı cevap
Konut proxy ile SSL: WRONG_VERSION_NUMBER ne anlama gelir?
[SSL: WRONG_VERSION_NUMBER] proxy üzerinden neredeyse her zaman istemcinizin TLS el sıkışmasını metin olarak cevap veren bir şeye başlatması anlamına gelir. Yaygın sebep, düz HTTP proxy portuna işaret eden https:// proxy URL'sidir. CrawlRelay ile, hem HTTP hem HTTPS hedefleri için geçit adresinin önüne http:// yazın; sitenin kendi HTTPS'i tünelden çalışmaya devam eder.
SSL: WRONG_VERSION_NUMBER hızlı bakış
| Hata | SSL: WRONG_VERSION_NUMBER |
|---|---|
| Tür | İstemcide TLS hatası |
| Gönderen | Karşı taraf TLS konuşmadığında TLS kitaplığınızda oluşur |
| Tanımlandığı yer | TLS 1.3: RFC 8446; HTTP proxy CONNECT: RFC 9110, section 9.3.6 |
| Tekrar denemek ister misiniz? | Hayır. Bu bir yapılandırma hatasıdır |
| İlk kontrol | Proxy URL'nizin önündeki scheme'i kontrol edin |
SSL: WRONG_VERSION_NUMBER ne anlama gelir?
TLS el sıkışması bir protokol kaydı ile başlar. Dönen baytlar HTTP cevabıysa, TLS kitaplığı saçma bir sürüm numarası okur ve durur. Python WRONG_VERSION_NUMBER hatası verir; tam ifade OpenSSL ve istemci sürümüne göre değişir.
Proxy URL scheme'i, istemcinizin proxy ile nasıl konuştuğunu belirler. http:// proxy ile düz HTTP konuşma ve ardından CONNECT tünel ile TLS'yi, https:// ise proxy ile TLS'yi belirtir ve sadece proxy portu TLS bekliyorsa işler.
Python, curl, Node.js ve tarayıcılarda SSL: WRONG_VERSION_NUMBER nasıl görünür?
Aynı başarısızlık her araçta farklı şekilde görünür. Loglarınızda aramanız gereken mesajlar şunlardır:
- Python requests / urllib3 2.x:
SSLError(SSLError(1, '[SSL: WRONG_VERSION_NUMBER] wrong version number')),ProxyErroriçinde sarılıdır - httpx:
httpx.ConnectError: [SSL: WRONG_VERSION_NUMBER] wrong version number - curl:
curl: (35) ... wrong version number, düz proxy için-x https://yazdığınızda - Node.js: Hata mesajında
EPROTO ... wrong version number
SSL: WRONG_VERSION_NUMBER neden olur?
Öncelikle en olası sebep:
- Düz HTTP konuşan bir portta proxy adresi önünde **
https://kullanımı. Bu en yaygın durum. - Proxy portu TLS bekleyen bir sağlayıcıdan alınan kopyalanan ayarlar.
- 80 portlu URL'de
https://veya TLS bekleyen site portundahttp://, herhangi bir proxy dışında. - Kodunuzun devraldığı
HTTPS_PROXY=https://...gibi bir çevre değişkeni.
SSL: WRONG_VERSION_NUMBER nasıl adım adım teşhis edilir?
- Kodunuzun kullandığı proxy URL'sini yazdırıp scheme'i kontrol edin.
- Çevrede
HTTPS_PROXYveALL_PROXY'i kontrol edin. - Aşağıdaki curl testini
-x http://ile çalıştırıp doğrulayın. - Curl çalışıyor ama kodunuz etmiyorsa, kod veya ortamınız hala
https://kullanıyor.
# 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_URLSSL: WRONG_VERSION_NUMBER nasıl düzeltilir?
- Her anahtar için proxy URL'nde
http://kullanın:{"http": "http://...", "https": "http://..."}. - TLS doğrulamasını açık bırakın. Çözüm scheme,
verify=Falsedeğil. - Çevre değişkenini düzeltin, tek bir betikte geçersiz kılmayın.
SSL: WRONG_VERSION_NUMBER sonrası tekrar denenmeli mi?
Bu hatayı asla tekrar denemeyin: her deneme aynı şekilde başarısız olur. Tek karakterlik bir yapılandırma düzeltmesidir.
SSL: WRONG_VERSION_NUMBER CrawlRelay için nasıl geçerli?
CrawlRelay'in HTTP portu, HTTPS sitelerini CONNECT tünelleri ile taşıyan basit bir HTTP proxy portudur. TLS, tünel içinde istemciniz ve site arasında uçtan uca çalışır, geçit asla https:// proxy URL'si gerektirmez.
Gateway: gw.crawlrelay.com, port 7777 (HTTP, HTTPS CONNECT üzerinden) ve port 7778 (SOCKS5). Kullanıcı adı formatı: USERNAME-country-{cc}-state-{state}-city-{city}-zip-{zip}-asn-{asn}-session-{id}-ttl-{minutes}. İlgili: SSL certificate verify failed · Proxyye bağlanılamıyor · Python rehberi.
SSL: WRONG_VERSION_NUMBER: geliştiricilerin sorduğu sorular
http:// proxy URL'si kullanırsam trafiğim şifrelenmemiş olur mu?
HTTPS siteler için değil. http:// scheme sadece proxy ile kısa CONNECT alışverişini kapsar, bu proxy kimlik bilgilerinizi içerir. Bundan sonra istemciniz tünelde site ile doğrudan TLS yapar ve proxy sadece şifrelenmiş baytları iletir. Düz http:// siteleri, proxy olsa da olmasa da şifrelenmemiştir.
Bu sorun urllib3 güncellenince neden başladı?
urllib3 2.x HTTPS proxylerini destekler, bu yüzden https:// proxy URL'sini aynen alır ve proxy ile TLS başlatır. Eski yapılandırmalar yanlış scheme ile bazen işe yarardı. Düz HTTP proxy portları için http:// yazın, hata kalkar.
Hata kalksın diye verify=False mu ayarlamalıyım?
Hayır. Sertifika kontrollerini kapatmak yanlış schemeyi düzeltmez ve her istekte saldırıya açık olmanızı sağlar. Proxy URL schemeyi düzeltin. Üretimde doğrulamayı açık tutun.
Bu referanstaki diğer proxy hataları
HTTP durum kodları
- 401 Unauthorized vs 407
- 403 Forbidden
- 407 Proxy Authentication Required
- 429 Too Many Requests
- 502 Bad Gateway
- 503 Service Unavailable
- 504 Gateway Timeout
Tarayıcı ve istemci hataları
Bağlantı ve TLS hataları
Başarısızlık durumları için dokümanlı konut proxy'ler
$0,50/GB sitesinden süresi hiç bitmeyen CrawlRelay konut proxy