# SSL WRONG_VERSION_NUMBER via un proxy : la correction

> [SSL: WRONG_VERSION_NUMBER] via un proxy signifie souvent une URL de proxy https:// sur un port HTTP classique. La correction d’une ligne pour Python et Node.

- URL: https://crawlrelay.com/fr/docs/errors/ssl-wrong-version-number/
- Dernière mise à jour: 2026-10-13
- Publisher: CrawlRelay (https://crawlrelay.com)

Erreur TLS côté client : message exact dans chaque outil, causes probables par ordre, et solution efficace.

**Réponse rapide — Que signifie SSL: WRONG_VERSION_NUMBER avec un proxy ?**

**[SSL: WRONG_VERSION_NUMBER]** via un proxy signifie presque toujours que votre client a démarré une négociation TLS avec quelque chose qui répond en clair. La cause habituelle est une URL de proxy `https://` pointant vers un port proxy HTTP classique. Avec CrawlRelay, écrivez `http://` devant l’adresse de la passerelle pour cibles HTTP et HTTPS ; le HTTPS du site passe toujours par le tunnel.

## SSL: WRONG_VERSION_NUMBER en un coup d'œil

| Attribut | Valeur |
| --- | --- |
| Erreur | SSL: WRONG_VERSION_NUMBER |
| Type | Erreur TLS côté client |
| Envoyé par | Votre bibliothèque TLS, lorsque la partie distante ne parle pas TLS |
| Défini dans | TLS 1.3: RFC 8446; HTTP proxy CONNECT: RFC 9110, section 9.3.6 |
| Réessayer ? | Non. C’est une erreur de configuration |
| Vérification initiale | Regardez le schéma en début d’URL proxy |

## Que signifie SSL: WRONG_VERSION_NUMBER ?

Le TLS commence par un enregistrement de négociation. Si ce qui revient est une réponse HTTP, la bibliothèque TLS lit un numéro de version incohérent et s’arrête. Python rapporte `WRONG_VERSION_NUMBER` ; la formulation exacte varie selon la version d’OpenSSL et le client.

Le schéma de l’URL proxy décide comment votre client parle au proxy. `http://` signifie HTTP simple vers le proxy, suivi d’un tunnel `CONNECT` et TLS vers le site. `https://` signifie TLS avec le proxy, possible seulement si le port proxy attend du TLS.

## À quoi ressemble SSL: WRONG_VERSION_NUMBER en Python, curl, Node.js et navigateurs ?

La même erreur s'affiche différemment selon chaque outil. Voici les messages à rechercher dans vos logs :

- **Python requests / urllib3 2.x :** `SSLError(SSLError(1, '[SSL: WRONG_VERSION_NUMBER] wrong version number'))` encapsulé dans une `ProxyError`
- **httpx :** `httpx.ConnectError: [SSL: WRONG_VERSION_NUMBER] wrong version number`
- **curl :** `curl: (35) ... wrong version number` si vous écrivez `-x https://` pour un proxy simple
- **Node.js :** `EPROTO ... wrong version number` dans le message d’erreur

## Quelles sont les causes de SSL: WRONG_VERSION_NUMBER ?

Probablement en premier lieu :

- **`https://` devant l’adresse du proxy** sur un port qui parle HTTP simple. C’est le cas le plus courant.
- **Paramètres copiés-collés** d’un fournisseur dont le port proxy attend TLS.
- **`https://` sur une URL avec port 80**, ou `http://` sur port site qui attend TLS, hors proxy.
- **Une variable d’environnement** comme `HTTPS_PROXY=https://...` héritée par votre code.

## Comment diagnostiquer SSL: WRONG_VERSION_NUMBER étape par étape ?

1. Affichez l’URL du proxy utilisée par votre code et vérifiez son schéma.
2. Vérifiez la présence de `HTTPS_PROXY` et `ALL_PROXY` dans l’environnement.
3. Lancez le test curl ci-dessous avec `-x http://` et vérifiez que ça fonctionne.
4. Si curl marche et pas votre code, votre code ou environnement utilise encore `https://`.

*Tester l'URL en échec avec curl (port HTTP, mode verbeux)*

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

## Comment résoudre SSL: WRONG_VERSION_NUMBER ?

- **Utilisez `http://` pour l’URL proxy** dans chaque clé : `{"http": "http://...", "https": "http://..."}`.
- **Laissez la vérification TLS activée.** Le correctif est dans le schéma, pas dans `verify=False`.
- **Corrigez la variable d’environnement** au lieu de la surcharger dans un script.

## Dois-je réessayer après SSL: WRONG_VERSION_NUMBER ?

Ne retentez jamais cette erreur : chaque tentative échoue de la même façon. C’est une correction de configuration d’un caractère.

## Quelle est l'incidence de SSL: WRONG_VERSION_NUMBER sur CrawlRelay ?

Le port HTTP de CrawlRelay est un port de proxy HTTP simple transportant les sites HTTPS via des tunnels `CONNECT`. Le TLS s’effectue de bout en bout entre votre client et le site dans le tunnel, donc la passerelle ne nécessite jamais une URL de proxy `https://`.

Passerelle : `gw.crawlrelay.com`, port 7777 (HTTP, HTTPS via CONNECT) et port 7778 (SOCKS5). Format du nom d'utilisateur : `USERNAME-country-{cc}-state-{state}-city-{city}-zip-{zip}-asn-{asn}-session-{id}-ttl-{minutes}`. Voir aussi : [Échec de la validation du certificat SSL](https://crawlrelay.com/fr/docs/errors/ssl-certificate-verify-failed/) · [Impossible de se connecter au proxy](https://crawlrelay.com/fr/docs/errors/cannot-connect-to-proxy/) · [Guide Python](https://crawlrelay.com/fr/docs/python/).

## SSL: WRONG_VERSION_NUMBER : questions fréquentes des développeurs

### Mon trafic n’est-il pas chiffré si j’utilise une URL proxy http:// ?

Pas pour les sites HTTPS. Le schéma `http://` ne couvre que l’échange court CONNECT avec le proxy, incluant vos identifiants. Ensuite, votre client exécute TLS directement avec le site dans le tunnel, et le proxy ne transmet que des octets chiffrés. Les sites en `http://` simple ne sont pas chiffrés, avec ou sans proxy.

### Pourquoi cela a-t-il commencé après une mise à jour d’urllib3 ?

urllib3 2.x supporte les proxies HTTPS, donc il prend une URL proxy `https://` au pied de la lettre et démarre un TLS avec le proxy. Les anciennes configurations fonctionnaient parfois par accident avec un mauvais schéma. Écrivez `http://` pour ports proxy HTTP classique et l’erreur disparaît.

### Dois-je mettre verify=False pour supprimer l’erreur ?

Non. Désactiver la vérification des certificats ne corrige pas un schéma erroné et vous expose à une interception sur chaque requête. Corrigez le schéma dans l’URL proxy. Gardez la vérification activée en production.

## Autres erreurs de proxy dans cette référence

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

**Proxies résidentiels avec documentation couvrant les cas de défaillance** Proxies résidentiels CrawlRelay de 0,50 $US/GB, trafic sans expiration. [Voir les tarifs](https://crawlrelay.com/fr/pricing/) · [Démarrage rapide](https://crawlrelay.com/fr/docs/)

---

CrawlRelay: CrawlRelay est un service de proxy résidentiel rotatif et proxy mobile 4G/5G pour développeurs, adapté aux scrapers et pipelines de données IA : trafic prépayé sans expiration à partir de 0,50 $US/GB, paiement en crypto, sans téléchargement d’ID. Sans KYC — pas d’ID, pas de selfie, pas de documents. Payer en crypto.
