Utilisez le schéma indiqué dans la documentation du point d’écoute du proxy. Si vous choisissez des candidats dans la liste de proxys HTTP, vérifiez ce schéma avant de configurer le client. Un site HTTPS peut passer par http://proxy.example:8080 ; remplacer cette valeur par https:// demande un autre type de connexion au proxy.

URL du proxyURL du siteConnexion
http://proxy.example:8080http://example.com/HTTP en clair vers le proxy et vers le site de destination.
http://proxy.example:8080https://example.com/HTTP CONNECT vers le proxy, puis TLS vers la destination à travers le tunnel.
https://proxy.example:8443https://example.com/TLS vers le proxy, avec le tunnel vers la destination transporté dans cette connexion.

Pour un point d’écoute HTTP classique autorisant CONNECT, cette commande est cohérente :

curl --proxy http://127.0.0.1:8080 https://example.com/

La négociation TLS avec le site a lieu après que le proxy a accepté le tunnel. Si vous remplacez l’URL du proxy par https:// alors que son point d’écoute ne comprend que HTTP en clair, la négociation TLS avec le proxy peut échouer avant même de contacter le site.

Ce qu’ajoute TLS entre le client et le proxy

Un proxy compatible TLS protège la liaison entre le client et le proxy, y compris l’échange CONNECT et l’authentification auprès du proxy, contre l’écoute passive sur ce trajet. L’opérateur du proxy traite toujours la connexion et connaît la destination du tunnel. Le client et le point d’écoute doivent tous deux prendre en charge ce mode :

curl --proxy https://proxy.example:8443 https://example.com/

Utilisez le véritable nom d’hôte du service : son certificat doit correspondre à ce nom et être reconnu comme fiable. Les restrictions sur les destinations et les ports restent applicables.

Avec HTTPS des deux côtés, deux vérifications de certificat sont effectuées. curl permet de configurer ces vérifications séparément :

curl --proxy https://proxy.example:8443 --proxy-cacert proxy-ca.pem --cacert origin-ca.pem https://example.com/

--proxy-cacert définit la confiance accordée au proxy ; --cacert celle accordée à la destination. Au besoin, utilisez les ensembles de certificats fournis par l’administrateur ; le magasin de confiance du système peut déjà suffire. Avant de modifier l’un ou l’autre, identifiez la négociation qui a échoué.

L’étiquette « HTTPS » d’une liste de proxys peut simplement indiquer que le point de connexion a réussi un test CONNECT. À moins que la liste n’explique son test, cette seule étiquette ne dit pas si le point d’écoute attend http:// ou https://.

Articles similaires