# SSL WRONG_VERSION_NUMBER qua proxy: cách sửa

> [SSL: WRONG_VERSION_NUMBER] qua proxy thường là URL https:// trên port proxy HTTP thường. Cách sửa nhanh cho Python và Node.

- URL: https://crawlrelay.com/vi/docs/errors/ssl-wrong-version-number/
- Cập nhật lần cuối: 2026-10-13
- Publisher: CrawlRelay (https://crawlrelay.com)

Lỗi TLS trong client: thông báo chính xác trong từng công cụ, nguyên nhân có thể theo thứ tự, và cách sửa hiệu quả.

**Trả lời nhanh — SSL: WRONG_VERSION_NUMBER nghĩa là gì với proxy?**

**[SSL: WRONG_VERSION_NUMBER]** qua proxy hầu như luôn có nghĩa client bạn bắt đầu bắt tay TLS với thứ trả về dạng văn bản thuần. Nguyên nhân phổ biến là URL proxy `https://` trỏ tới port proxy HTTP thường. Với CrawlRelay, viết `http://` trước địa chỉ gateway cho mục tiêu HTTP và HTTPS; HTTPS của website vẫn hoạt động qua tunnel.

## SSL: WRONG_VERSION_NUMBER nhìn nhanh

| Thuộc tính | Giá trị |
| --- | --- |
| Lỗi | SSL: WRONG_VERSION_NUMBER |
| Loại | Lỗi TLS trong client |
| Gửi bởi | Thư viện TLS của bạn khi bên kia không dùng TLS |
| Định nghĩa tại | TLS 1.3: RFC 8446; HTTP proxy CONNECT: RFC 9110, section 9.3.6 |
| Thử lại? | Không. Đó là lỗi cấu hình |
| Kiểm tra trước tiên | Nhìn vào scheme trước URL proxy của bạn |

## SSL: WRONG_VERSION_NUMBER nghĩa là gì?

TLS bắt đầu bằng bản ghi bắt tay. Nếu byte trả về là phản hồi HTTP, thư viện TLS đọc số phiên bản vô nghĩa và dừng. Python báo `WRONG_VERSION_NUMBER`; lời báo chính xác khác nhau theo phiên bản OpenSSL và client.

Scheme URL proxy quyết định cách client bạn giao tiếp với proxy. `http://` nghĩa HTTP thường tới proxy, theo sau là tunnel `CONNECT` và TLS với website. `https://` nghĩa TLS tới proxy, chỉ khi port proxy mong đợi TLS.

## SSL: WRONG_VERSION_NUMBER trông như thế nào trong Python, curl, Node.js và trình duyệt?

Cùng một lỗi nhưng hiển thị khác nhau trên mỗi công cụ. Đây là các thông báo bạn nên tìm trong nhật ký của mình:

- **Python requests / urllib3 2.x:** `SSLError(SSLError(1, '[SSL: WRONG_VERSION_NUMBER] wrong version number'))` bọc trong `ProxyError`
- **httpx:** `httpx.ConnectError: [SSL: WRONG_VERSION_NUMBER] wrong version number`
- **curl:** `curl: (35) ... wrong version number` khi bạn viết `-x https://` cho proxy thường
- **Node.js:** `EPROTO ... wrong version number` trong thông báo lỗi

## Nguyên nhân gây ra SSL: WRONG_VERSION_NUMBER là gì?

Khả năng đầu tiên là:

- **`https://` trước địa chỉ proxy** trên port giao tiếp HTTP thường. Đây là trường hợp phổ biến nhất.
- **Cấu hình copy-paste** từ nhà cung cấp có port proxy kỳ vọng TLS.
- **`https://` trên URL với port 80**, hoặc `http://` trên port site yêu cầu TLS, ngoài proxy.
- **Biến môi trường** như `HTTPS_PROXY=https://...` kế thừa trong mã của bạn.

## Làm sao để chẩn đoán SSL: WRONG_VERSION_NUMBER từng bước?

1. In URL proxy mà mã bạn dùng và kiểm tra scheme của nó.
2. Kiểm tra biến môi trường cho `HTTPS_PROXY` và `ALL_PROXY`.
3. Chạy thử curl bên dưới với `-x http://` và xác nhận nó hoạt động.
4. Nếu curl được mà mã không, mã hoặc môi trường bạn vẫn đang dùng `https://`.

*Kiểm tra URL bị lỗi với curl (cổng HTTP, chi tiết)*

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

## Làm sao để sửa SSL: WRONG_VERSION_NUMBER?

- **Dùng `http://` cho URL proxy** trong mọi khóa: `{"http": "http://...", "https": "http://..."}`.
- **Để bật xác thực TLS.** Cách sửa là scheme, không phải `verify=False`.
- **Sửa biến môi trường,** thay vì ghi đè trong script riêng.

## Có nên thử lại sau SSL: WRONG_VERSION_NUMBER không?

Không bao giờ thử lại lỗi này: mọi lần thử đều lỗi như nhau. Đây là sửa cấu hình chỉ một ký tự.

## SSL: WRONG_VERSION_NUMBER áp dụng thế nào với CrawlRelay?

Port HTTP của CrawlRelay là port proxy HTTP thường chuyên chở các site HTTPS qua tunnel `CONNECT`. TLS chạy end-to-end giữa client bạn và website bên trong tunnel, nên gateway không cần URL proxy `https://`.

Gateway: `gw.crawlrelay.com`, cổng 7777 (HTTP, HTTPS qua CONNECT) và cổng 7778 (SOCKS5). Định dạng tên người dùng: `USERNAME-country-{cc}-state-{state}-city-{city}-zip-{zip}-asn-{asn}-session-{id}-ttl-{minutes}`. Tham khảo liên quan: [Lỗi xác thực SSL](https://crawlrelay.com/vi/docs/errors/ssl-certificate-verify-failed/) · [Không kết nối được proxy](https://crawlrelay.com/vi/docs/errors/cannot-connect-to-proxy/) · [Hướng dẫn Python](https://crawlrelay.com/vi/docs/python/).

## SSL: WRONG_VERSION_NUMBER: các câu hỏi thường gặp của lập trình viên

### Lưu lượng của tôi có bị giải mã nếu tôi dùng http:// proxy URL?

Không với website HTTPS. Scheme `http://` chỉ bao phủ việc trao đổi CONNECT ngắn với proxy, bao gồm xác thực proxy của bạn. Sau đó client chạy TLS trực tiếp với website bên trong tunnel, proxy chỉ chuyển tiếp byte đã mã hóa. Website `http://` thuần túy không mã hóa dù có proxy hay không.

### Tại sao lỗi này bắt đầu sau khi nâng cấp urllib3?

urllib3 2.x hỗ trợ proxy HTTPS, nên nó coi `https://` literal và bắt đầu TLS với proxy. Những cấu hình cũ đôi khi vô tình hoạt động với scheme sai. Viết `http://` cho port proxy HTTP thường và lỗi mất.

### Tôi có nên đặt verify=False cho hết lỗi này không?

Không. Tắt kiểm tra chứng chỉ không sửa được scheme sai, và khiến bạn dễ bị đánh cắp thông tin ở mọi yêu cầu. Sửa URL proxy scheme. Giữ bật xác thực trong môi trường sản xuất.

## Các lỗi proxy khác trong tài liệu tham khảo này

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

**Proxy dân cư với tài liệu bao gồm các trường hợp lỗi** CrawlRelay proxy dân cư từ 0,50 US$/GB, lưu lượng không bao giờ hết hạn. [Xem giá](https://crawlrelay.com/vi/pricing/) · [Bắt đầu nhanh](https://crawlrelay.com/vi/docs/)

---

CrawlRelay: CrawlRelay là dịch vụ proxy dân cư xoay vòng và proxy di động 4G/5G dành cho nhà phát triển, hỗ trợ scrapers và pipeline dữ liệu AI: traffic trả tiền theo nhu cầu không hết hạn từ 0,50 US$/GB, thanh toán bằng crypto, không cần tải lên ID. Không cần KYC — không cần ID, không chụp selfie, không giấy tờ.
