Tous les emplacements actifs · 99.99% uptime
Protocoles

Proxy et validation des certificats TLS

L'erreur de certificat qui apparaît après la configuration d'un proxy peut signaler deux choses radicalement différentes : soit une couche d'inspection s'intercale, soit il s'agit d'une simple lacune de configuration. Les distinguer est essentiel pour votre sécurité.

Que devrait-il se passer normalement ?

Dans un tunnel CONNECT correctement configuré, le proxy ne touche jamaisau certificat. La poignée de main TLS s'effectue directement entre le client et le serveur cible ; le proxy ne transporte que des octets chiffrés. Le certificat est donc le véritable certificat du site cible.

FIGURECirculation du certificat dans un tunnel sain
NORMALClientProxyServeur cibleRequête CONNECT200 establishedClientHelloTransmettre les octetsCertificat réelLe proxy voit le certificat mais ne peut pas le modifier

Dans ce flux, aucune erreur de certificat n'est attendue. S'il y en a une, soit il y a interception, soit le magasin de certificats du client est incomplet.

Causes des erreurs

FIGUREOrigines des erreurs de certificat avec un proxy
DIAGNOSTICCODE / SYMPTÔMECAUSE PROBABLESOLUTIONunable to get local issuercertificateMagasin de certificats racine du client incomplet/obsolèteMettez à jour le paquet CA (ca-certificates)self signed certificate inchainUne couche d'inspection s'intercaleVérifiez et ajoutez le certificat racine de l'entreprisecertificate has expiredLe certificat de la cible a expiré ou l'horlogesystème est incorrecteVérifiez l'horloge systèmehostname mismatchLe nom du certificat ne correspond pas au SNIVérifiez l'adresse cible et la configuration du proxyL'application ne s'ouvre pas(pinning)L'épinglage de certificat refuse l'interceptionUtilisez un canal sans interception TLS

La deuxième ligne est un signal d'alerte : si la chaîne contient un certificat auto-signé, votre trafic est peut-être lu.

Comment détecter une SSL inspection ?

FIGUREExaminer la chaîne de certificats
Terminal01# Qui a signé le certificat via le proxy ?02curl -v -x http://proxy.example.com:8080 https://example.com 2>&1 \\03 | grep -E "subject:|issuer:|SSL certificate"0405# Comparez avec une connexion directe06curl -v https://example.com 2>&1 | grep -E "subject:|issuer:"0708# Si l'issuer diffère entre les deux sorties, il y a interception0910# Chaîne détaillée avec openssl11openssl s_client -connect example.com:443 -servername example.com </dev/null 2>/dev/null \\12 | openssl x509 -noout -issuer -subject -dates

Si les valeurs issuer des deux sorties diffèrent, le proxy applique une interception TLS et peut lire votre trafic.

Avertissement de sécurité

Faire taire l'erreur de certificat avec -k ou verify=False ne résout rien — cela la rend seulement invisible. Cela revient à laisser tout intermédiaire lire votre trafic. À ne jamais utiliser en production.

Les bonnes solutions

01

Mettez à jour le magasin de certificats racine

C'est la cause la plus fréquente. Sous Linux, update-ca-certificates, en Python, un connecteur personnalisé avec certifi mettez le paquet à jour.

02

Ajoutez le certificat racine de l'entreprise après vérification

Si vous êtes sur un réseau d'entreprise et que la politique l'exige, ajoutez au magasin de confiance de votre client le certificat racine fourni par votre service informatique. N'ajoutez jamais un certificat téléchargé sur Internet.

03

Vérifiez l'horloge système

Une horloge système incorrecte fait apparaître des certificats valides comme « expirés ». C'est fréquent sur les machines virtuelles.

04

Utilisez un canal sans interception TLS

Les applications qui recourent à l'épinglage de certificat n'acceptent pas l'interception. Dans ce cas, il faut passer par les données mobiles ou une connexion directe.

Magasin de certificats propre à chaque application

Toutes les applications n'utilisent pas le magasin de confiance du système. C'est l'explication du fameux « ça marche dans le navigateur mais pas dans mon script » :

EnvironnementMagasin de certificatsMéthode d'ajout
Outils système Linux/etc/ssl/certsupdate-ca-certificates
Python (requests)paquet certifiREQUESTS_CA_BUNDLE variable
Node.jsMagasin intégréNODE_EXTRA_CA_CERTS variable
Javakeystore cacertskeytool -import
FirefoxMagasin propreParamètres → Certificats
ChromeMagasin systèmeRéglage du système d'exploitation
FIGUREDéclarer un certificat racine supplémentaire à l'application
Variables d'environnement01# Python requests02export REQUESTS_CA_BUNDLE=/yol/kurumsal-kok.pem0304# Node.js05export NODE_EXTRA_CA_CERTS=/yol/kurumsal-kok.pem0607# curl08curl --cacert /yol/kurumsal-kok.pem -x http://proxy.example.com:8080 https://example.com0910# Git11git config --global http.sslCAInfo /yol/kurumsal-kok.pem1213# Ensemble du système Linux (à manier avec précaution)14sudo cp kurumsal-kok.crt /usr/local/share/ca-certificates/15sudo update-ca-certificates

Ajouter un certificat à l'échelle du système le rend fiable pour toutes les applications. Ne le faites que pour des certificats dont vous connaissez la provenance avec certitude.

Épinglage de certificat (pinning)

Certaines applications mobiles et clients bancaires épinglent le certificat du serveur à l'intérieur de l'application. Dès qu'ils voient un certificat intercalé, ils refusent la connexion — aucun ajout de certificat racine ne change ce comportement.

C'est la raison de la plainte « l'application ne s'ouvre pas sur le Wi-Fi de l'entreprise, mais s'ouvre en données mobiles ». La seule solution consiste à utiliser, pour cette application, un canal sans interception TLS.

Résumé

Dans un tunnel CONNECT sain, le proxy ne touche pas au certificat ; si vous voyez une erreur, c'est soit que le magasin racine de votre client est incomplet, soit qu'une couche d'inspection s'intercale. Pour distinguer les deux cas, comparez avec une connexion directe la valeur issuer de la chaîne de certificats. Désactiver la vérification n'est pas une solution : cela rend simplement le risque invisible. Pour voir ce que votre connexion laisse réellement fuiter, vous pouvez utiliser test d'anonymat notre outil.

Questions fréquentes

01Pourquoi ai-je une erreur de certificat lorsque j'utilise un proxy ?

Il y a deux causes principales : le magasin de certificats racine de votre client peut être incomplet ou obsolète, ou bien une couche d'inspection intermédiaire (SSL inspection) modifie le certificat.

02Puis-je désactiver la vérification du certificat ?

Techniquement oui, mais ne le faites pas. Désactiver la vérification permet à tout intermédiaire de lire et de modifier votre trafic. Traitez la cause racine du problème.

03Comment savoir s'il y a une interception ?

Comparez l'issuer du certificat obtenu via le proxy et en connexion directe. S'ils diffèrent, une couche intermédiaire est présente.

04Dois-je ajouter le certificat racine de l'entreprise ?

Si vous travaillez sur un réseau d'entreprise et que la politique l'exige, oui — mais obtenez le certificat uniquement auprès de votre service informatique. N'ajoutez jamais à votre magasin de confiance un certificat racine téléchargé sur Internet.

05Pourquoi l'application ne s'ouvre-t-elle pas du tout sur le réseau d'entreprise ?

Elle utilise peut-être l'épinglage de certificat. Ces applications épinglent en interne le certificat du serveur et rejettent tout certificat intercalé. Ajouter un certificat racine ne change pas ce comportement.

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.