Tous les emplacements actifs · 99.99% uptime
Protocoles

La méthode HTTP CONNECT et le tunneling HTTPS

Un proxy HTTP peut lire et router les requêtes HTTP en clair. Mais le trafic HTTPS chiffré ? Comment le router puisque le proxy ne peut pas en lire le contenu ? La réponse est la méthode CONNECT : la façon standard de dire au proxy « ouvre un tunnel TCP brut vers cette adresse, puis n'interviens plus ».

Comment le tunnel est-il établi ?

FIGUREÉtablissement du tunnel avec CONNECT
TUNNELClientParamètreCONNECT ornek.com:443 HTTP/1.1Host: ornek.com:443407 Proxy Authentication RequiredSi une authentification est requiseProxy-Authorization: Basic …HTTP/1.1 200 Connection established→ la négociation TLS commence (invisible pour le proxy)

Après la réponse 200, le proxy devient un simple « tuyau » : il transfère les octets reçus tels quels à l'autre extrémité, sans jamais regarder le contenu.

Important

La réponse CONNECT 200 Connection established dès cet instant, le proxy cesse de parler HTTP. Les octets suivants constituent la négociation TLS, que le proxy ne peut pas interpréter — il se contente de la transporter.

Que voit le proxy dans un tunnel CONNECT ?

FIGUREVisibilité couche par couche
VISIBILITÉConnexion TCPLigne CONNECTNégociation TLSRequête/réponse HTTPLe proxy l'établit et la gère —entièrement visibleNom de domaine et port cibles —visiblesLe champ SNI circulesans chiffrement — visibleChiffré — le proxy ne peut pas le voirProxy : nom de domaine cible + heure + volume d'octets

Autrement dit, HTTPS masque ce que vous faites mais ne masque pas où vous allez . Cette distinction est capitale lorsqu'on évalue la confidentialité d'un proxy.

Nous avons traité en détail la question des fuites de métadonnées et des logs notre article sur les journaux de logs .

Différence entre CONNECT et absolute-URI

En HTTP en clair, une forme de requête différente est envoyée au proxy. Il ne faut pas confondre les deux :

HTTP en clair (absolute-URI)HTTPS (CONNECT)
Ligne de requêteGET http://site/yol HTTP/1.1CONNECT site:443 HTTP/1.1
Le proxy voit-il le contenuOui, intégralementNon
Peut-il ajouter des en-têtesOuiNon
Peut-il mettre en cacheOuiNon
Pour chaque requêteNouvelle ligne de requêteUn seul tunnel, plusieurs requêtes

C'est pourquoi les en-têtes comme X-Forwarded-For ne peuvent être ajoutés que dans le trafic HTTP en clair ; en HTTPS, le proxy ne peut pas toucher aux en-têtes.

Pourquoi CONNECT est-il restreint ?

CONNECT donne au proxy le pouvoir d'« ouvrir une connexion TCP brute vers n'importe quelle adresse ». Sans restriction, le proxy devient un relais ouvert. C'est pourquoi la plupart des configurations de proxy limitent CONNECT à certains ports uniquement :

FIGUREPorts typiquement autorisés pour CONNECT
POLITIQUEPortServicePolitique typique443HTTPSAutorisé — standard563NNTPSGénéralement autorisé993IMAPSSelon les cas465 / 587SMTPSLe plus souvent bloqué (risque de spam)22SSHGénéralement bloqué25SMTPPresque toujours bloqué

Le blocage des ports SMTP vise à prévenir les abus liés au spam. Si vous devez transporter du trafic e-mail, vous devez demander une autorisation spécifique à votre fournisseur.

Erreurs fréquentes

FIGURERéponses d'erreur liées à CONNECT
ERREURCODE / SYMPTÔMECAUSE PROBABLESOLUTION407 Proxy AuthenticationRequiredAucun identifiant n'a été envoyéAjoutez l'en-tête Proxy-Authorization403 ForbiddenLe port cible est hors politiqueDemandez la liste des ports autorisés à votre fournisseur502 Bad GatewayLe proxy n'a pas pu joindre la cibleVérifiez l'adresse cible et son accessibilité504 Gateway TimeoutLa cible n'a pas répondu à tempsAugmentez le délai d'expiration, vérifiez la cibleERR_TUNNEL_CONNECTION_FAILEDLe tunnel n'a pas pu être établi dans le navigateurVérifiez l'adresse du proxy, le port et les identifiants

L'erreur que vous voyez dans le navigateur ERR_TUNNEL_CONNECTION_FAILEDsignifie que la requête CONNECT a reçu une réponse autre que 200. Pour en voir le détail, testez avec curl.

Analyse en ligne de commande

FIGUREObserver la négociation CONNECT
Terminal01# sortie détaillée de curl — observez les lignes CONNECT02curl -v -x http://proxy.example.com:8080 https://example.com 2>&1 | grep -E "CONNECT|Proxy|established"0304# Sortie attendue :05# > CONNECT example.com:443 HTTP/1.106# < HTTP/1.1 200 Connection established0708# Avec authentification09curl -v -x http://proxy.example.com:8080 --proxy-user "kullanici:sifre" \\10 https://example.com 2>&1 | grep -E "CONNECT|407|200"1112# Envoyer manuellement la requête CONNECT brute (à des fins pédagogiques)13printf "CONNECT example.com:443 HTTP/1.1\\r\\nHost: example.com:443\\r\\n\\r\\n" \\14 | nc proxy.example.com 8080 | head -3

Cette dernière commande montre à quel point le protocole est simple : il suffit d'envoyer quelques lignes de texte et de recevoir une réponse 200.

Interception TLS (SSL Inspection)

Certains proxys d'entreprise, au lieu d'établir le tunnel, s'interposent : ils se connectent eux-mêmes à la cible et présentent au client un faux certificat signé par l'autorité racine de l'entreprise. Dans ce cas, le proxy peut aussi lire le contenu chiffré.

Comment le détecter ?

Dans le navigateur, cliquez sur l'icône du cadenas et regardez l'organisme émetteur du certificat. Si le nom de l'entreprise apparaît à la place de l'autorité de certification publique attendue, c'est qu'une interception TLS est en place. Nous abordons le sujet dans notre article sur le proxy transparent .

Note de performance : réutilisation du tunnel

Une fois un tunnel CONNECT établi, plusieurs requêtes vers la même cible peuvent y transiter. Cela revient à ne payer qu'une seule fois le coût de la négociation. Garder le keep-alive activé sur votre client apporte un gain de vitesse net sur le trafic reposant sur CONNECT.

FIGUREL'effet de la réutilisation du tunnel
Valeurs de performance typiques1re requête (CONNECT + TLS)186 ms2e requête (même tunnel)62 ms3e requête (même tunnel)58 msSi un nouveau tunnel est ouvert184 ms0 ms490 ms au total

La première requête est coûteuse, les suivantes bon marché. Un client qui ouvre une nouvelle connexion à chaque requête paie cet écart en permanence.

Résumé

CONNECT est un mécanisme simple mais puissant qui permet à un proxy HTTP de transporter du trafic chiffré. Une fois le tunnel établi, le proxy ne voit pas le contenu ; il connaît seulement le nom de domaine cible, l'heure et le volume d'octets. Les politiques de ports limitent CONNECT afin de prévenir les abus. Pour la performance, la réutilisation du tunnel est déterminante. Pour valider votre configuration, utilisez notre outil de vérification de proxy est à votre disposition.

Questions fréquentes

01À quoi sert la méthode CONNECT ?

Elle demande au proxy HTTP d'ouvrir un tunnel TCP brut vers une cible donnée. Le trafic HTTPS passe dans ce tunnel ; le proxy ne voit pas le contenu, il ne fait que le transporter.

02Que peut voir le proxy dans mon trafic HTTPS ?

Le nom de domaine cible (la ligne CONNECT et le champ SNI de TLS), l'heure de la connexion et le volume d'octets transférés. Le contenu, les en-têtes et les cookies sont chiffrés, donc invisibles.

03Que signifie ERR_TUNNEL_CONNECTION_FAILED ?

Cela signifie que la requête CONNECT du navigateur a reçu une réponse autre que 200. Cela vient d'une erreur d'authentification, d'une politique de ports ou de l'incapacité du proxy à joindre la cible.

04Pourquoi le proxy n'autorise-t-il pas le port 25 ?

Le port SMTP est le canal classique des abus liés au spam. Presque tous les fournisseurs le bloquent ; si vous devez transporter du trafic e-mail, vous devez demander une autorisation spécifique.

05Le tunnel CONNECT assure-t-il le chiffrement ?

Non, le tunnel lui-même n'est pas chiffré. Le chiffrement est assuré de bout en bout par TLS. C'est pourquoi faire transiter du trafic HTTP en clair par un CONNECT n'apporte aucune sécurité supplémentaire.

Articles et pages associés

ÉTAPE SUIVANTE

Renforcez votre infrastructure proxy dès aujourd'hui.

Démarrez en quelques minutes avec un forfait payant, ou essayez d'abord notre liste de proxys gratuits.

FREEPROXY.TR

Vous cherchez un proxy gratuit ? Vous êtes au bon endroit

Une plateforme proxy complète pour consulter des adresses de proxy gratuits à jour, comparer les types HTTP et SOCKS et vérifier vos connexions proxy avec des outils gratuits.