Jawaban cepat
Apa arti SSL: WRONG_VERSION_NUMBER dengan proxy?
[SSL: WRONG_VERSION_NUMBER] melalui proxy hampir selalu berarti klien Anda memulai handshake TLS dengan sesuatu yang menjawab dalam teks biasa. Penyebab umum adalah URL proxy https:// yang menunjuk ke port proxy HTTP biasa. Dengan CrawlRelay, tulis http:// di depan alamat gateway untuk target HTTP dan HTTPS; HTTPS situs tetap berfungsi lewat tunnel.
SSL: WRONG_VERSION_NUMBER sekilas
| Kesalahan | SSL: WRONG_VERSION_NUMBER |
|---|---|
| Tipe | Error TLS di klien |
| Dikirim oleh | Perpustakaan TLS Anda, saat sisi lain tidak berbicara TLS |
| Didefinisikan dalam | TLS 1.3: RFC 8446; HTTP proxy CONNECT: RFC 9110, section 9.3.6 |
| Mencoba lagi? | Tidak. Ini kesalahan konfigurasi |
| Periksa pertama | Perhatikan skema di depan URL proxy Anda |
Apa arti SSL: WRONG_VERSION_NUMBER?
TLS mulai dengan rekaman handshake. Jika byte yang kembali adalah respons HTTP, perpustakaan TLS membaca nomor versi yang nggak masuk akal dan berhenti. Python melaporkan WRONG_VERSION_NUMBER; kalimat persisnya berbeda menurut versi OpenSSL dan klien.
Skema URL proxy menentukan cara klien berbicara ke proxy. http:// berarti HTTP biasa ke proxy, diikuti tunnel CONNECT dan TLS dengan situs. https:// berarti TLS dengan proxy, yang berfungsi hanya jika port proxy mengharapkan TLS.
Seperti apa SSL: WRONG_VERSION_NUMBER dalam Python, curl, Node.js, dan browser?
Kegagalan yang sama dicetak berbeda di setiap alat. Ini adalah pesan yang perlu dicari di log Anda:
- Python requests / urllib3 2.x:
SSLError(SSLError(1, '[SSL: WRONG_VERSION_NUMBER] wrong version number'))dibungkus dalamProxyError - httpx:
httpx.ConnectError: [SSL: WRONG_VERSION_NUMBER] wrong version number - curl:
curl: (35) ... wrong version numberketika Anda tulis-x https://untuk proxy biasa - Node.js:
EPROTO ... wrong version numberdi pesan error
Apa penyebab SSL: WRONG_VERSION_NUMBER?
Kemungkinan besar pertama:
https://di depan alamat proxy pada port yang berbicara HTTP biasa. Ini kasus paling umum.- Setting salin-tempel dari penyedia yang port proxy-nya mengharapkan TLS.
https://pada URL dengan port 80, atauhttp://pada port situs yang mengharapkan TLS, di luar proxy mana pun.- Variabel lingkungan seperti
HTTPS_PROXY=https://...yang diturunkan ke kode Anda.
Bagaimana cara mendiagnosis SSL: WRONG_VERSION_NUMBER langkah demi langkah?
- Cetak URL proxy yang kode Anda pakai dan periksa skemanya.
- Periksa lingkungan untuk
HTTPS_PROXYdanALL_PROXY. - Jalankan tes curl di bawah dengan
-x http://dan pastikan berhasil. - Jika curl berhasil tapi kode Anda tidak, kode atau lingkungan Anda masih pakai
https://.
# 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_URLBagaimana cara memperbaiki SSL: WRONG_VERSION_NUMBER?
- Gunakan
http://pada URL proxy di setiap kunci:{"http": "http://...", "https": "http://..."}. - Biarkan verifikasi TLS aktif. Perbaikannya di skema, bukan di
verify=False. - Perbaiki variabel lingkungan daripada menimpanya di satu skrip.
Haruskah saya mencoba lagi setelah SSL: WRONG_VERSION_NUMBER?
Jangan ulangi error ini: setiap percobaan selalu gagal dengan cara yang sama. Ini perbaikan konfigurasi satu karakter.
Bagaimana SSL: WRONG_VERSION_NUMBER berlaku untuk CrawlRelay?
Port HTTP CrawlRelay adalah port proxy HTTP biasa yang membawa situs HTTPS melalui tunnel CONNECT. TLS berjalan ujung-ke-ujung antara klien dan situs di dalam tunnel, jadi gateway tidak perlu URL proxy https://.
Gateway: gw.crawlrelay.com, port 7777 (HTTP, HTTPS melalui CONNECT) dan port 7778 (SOCKS5). Format username: USERNAME-country-{cc}-state-{state}-city-{city}-zip-{zip}-asn-{asn}-session-{id}-ttl-{minutes}. Terkait: Verifikasi sertifikat SSL gagal · Tidak dapat terhubung ke proxy · Panduan Python.
SSL: WRONG_VERSION_NUMBER: pertanyaan yang sering ditanyakan pengembang
Apakah trafik saya tidak terenkripsi jika saya pakai URL proxy http://?
Tidak untuk situs HTTPS. Skema http:// hanya meliputi pertukaran CONNECT singkat ke proxy, yang termasuk kredensial proxy Anda. Setelah itu, klien langsung menjalankan TLS dengan situs dalam tunnel, dan proxy hanya meneruskan byte terenkripsi. Situs http:// biasa tidak terenkripsi baik dengan atau tanpa proxy.
Kenapa ini mulai terjadi setelah upgrade urllib3?
urllib3 2.x mendukung proxy HTTPS, jadi mengambil URL proxy https:// secara harfiah dan memulai TLS dengan proxy. Setup lama kadang berhasil secara kebetulan dengan skema salah. Tulis http:// untuk port proxy HTTP biasa dan error hilang.
Haruskah saya set verify=False supaya errornya hilang?
Tidak. Mematikan pengecekan sertifikat tidak memperbaiki skema salah, dan membahayakan Anda dengan intersepsi di setiap permintaan. Perbaiki skema URL proxy. Biarkan verifikasi aktif di produksi.
Kesalahan proxy lain dalam referensi ini
Kode status HTTP
- 401 Unauthorized vs 407
- 403 Forbidden
- 407 Proxy Authentication Required
- 429 Too Many Requests
- 502 Bad Gateway
- 503 Service Unavailable
- 504 Gateway Timeout
Kesalahan browser dan klien
Error koneksi dan TLS
Proxy residensial dengan dokumentasi yang membahas kasus kegagalan
Proxy residensial CrawlRelay dari US$0,50/GB, lalu lintas yang tidak pernah kedaluwarsa.