Un reverse proxy gère le TLS pour les conteneurs de serveur domestique en acceptant la connexion chiffrée du navigateur, en présentant le certificat pour le nom d'hôte demandé, en déchiffrant la requête HTTP, en sélectionnant le conteneur correspondant et en créant une connexion en amont distincte vers ce service.
Les connexions navigateur-vers-proxy et proxy-vers-conteneur sont donc des frontières de sécurité différentes. La première utilise normalement un certificat de confiance publique ou privée ; la seconde peut utiliser un réseau HTTP isolé, une connexion HTTPS séparée ou un passage TLS lorsque le backend doit conserver la clé privée.
Où se termine la connexion TLS du navigateur ?
Avec la terminaison TLS, le reverse proxy termine le TLS client. Le navigateur authentifie le point de terminaison du proxy et négocie le chiffrement avec lui plutôt qu'avec le conteneur d'application directement.
Le proxy détient donc la clé privée du certificat et peut lire la méthode HTTP déchiffrée, le nom d'hôte, le chemin, les en-têtes, les cookies et le corps. Cette visibilité lui permet de router, authentifier, filtrer, compresser, mettre en cache ou ajouter des en-têtes de sécurité.
La terminaison ne signifie pas que le backend possède le certificat public. Du point de vue du navigateur, le reverse proxy est le serveur HTTPS ; du point de vue du conteneur, le proxy est un nouveau client effectuant une requête distincte.
Comment un port HTTPS unique peut-il atteindre plusieurs conteneurs ?
Un nom DNS public oriente les clients vers le reverse proxy, et les noms d'hôtes sélectionnent la route de conteneur correspondante. Chaque nom d'hôte peut avoir son propre certificat et destination en amont tout en partageant le port 443.
Lors de la négociation TLS, le client fournit normalement le nom du serveur prévu afin que le proxy puisse choisir un certificat correspondant. Après déchiffrement, l'en-tête HTTP Host et la route configurée déterminent si la requête est dirigée vers Jellyfin, Home Assistant, Vaultwarden ou un autre conteneur.
Une route par défaut doit rejeter les noms d'hôtes inconnus plutôt que de les transférer vers un tableau de bord arbitraire. Centraliser l'entrée ne nécessite pas que chaque service interne soit accessible via le proxy public.
Comment les certificats sont-ils émis et renouvelés ?
Les proxies inverses peuvent agir comme clients ACME, et les défis DNS automatisent le renouvellement des certificats en créant un enregistrement DNS temporaire qui prouve le contrôle du domaine demandé.
Un défi HTTP prouve le contrôle via un point d’accès web, tandis qu’un défi DNS peut émettre des certificats pour des services internes ou des noms génériques sans publier chaque conteneur directement. La méthode de validation modifie l’exposition et les exigences en matière d’identifiants.
L’automatisation déplace l’expiration des certificats d’une tâche manuelle sur calendrier vers un état d’infrastructure. Elle fait aussi du jeton API DNS du proxy, des données de compte ACME et du stockage des certificats des actifs sensibles nécessitant des permissions restreintes et une sauvegarde.
Le trafic est-il chiffré entre le proxy et le conteneur ?
L’amont est configuré indépendamment, donc les liens en amont peuvent utiliser HTTP ou HTTPS. Terminer le TLS public ne décide pas automatiquement si la connexion interne est chiffrée.
Le HTTP simple peut être raisonnable sur un réseau de conteneurs privé limité à un hôte de confiance, mais le proxy peut lire et modifier ce trafic. Si l’amont traverse plusieurs hôtes, des réseaux non fiables ou des frontières de confiance plus strictes, une connexion HTTPS vérifiée séparée réduit l’exposition.
La ré-encryption crée deux sessions TLS et deux décisions de certificat. Le proxy doit valider le certificat du backend et le nom attendu ; activer simplement HTTPS sans vérification remplace le chiffrement par un tunnel non authentifié.
Comment le conteneur apprend-il le contexte client original ?
La connexion TCP en amont provient du proxy, donc les connexions proxy masquent l’adresse client originale. Les en-têtes Forwarded transportent l’IP client, le schéma original, le nom d’hôte et le port nécessaires à l’application.
Sans le schéma HTTPS d’origine, une application peut générer des redirections HTTP, marquer incorrectement les cookies sécurisés ou construire une URL de rappel erronée. Sans une adresse client fiable, les journaux, les limites de débit et les politiques d’accès peuvent n’identifier que le proxy.
Le proxy doit définir ces valeurs de manière cohérente, et le cadre du conteneur doit être configuré pour faire confiance au nombre de sauts ou au réseau proxy correct. Transmettre un en-tête et l’interpréter en toute sécurité sont des tâches distinctes.
Quelle nouvelle frontière de confiance la terminaison TLS crée-t-elle ?
Les clients peuvent eux-mêmes envoyer des en-têtes de transfert falsifiés, donc les proxies de confiance doivent assainir les en-têtes transférés avant que le backend ne les utilise pour des décisions de sécurité.
L'accès direct au conteneur doit être bloqué lorsque l'application fait confiance à l'identité fournie par le proxy. Sinon, un client peut contourner le proxy, soumettre sa propre valeur X-Forwarded-For ou de schéma, et usurper le contexte que l'application suppose provenir de l'entrée de confiance.
l'entrée conteneurisée réécrit le chemin client visible. Protégez les clés privées du proxy, restreignez son interface de gestion, exposez uniquement les routes prévues et surveillez le renouvellement des certificats ainsi que la santé en amont car le proxy est désormais une dépendance de sécurité partagée.
| Connexion ou signal | Géré par | Décision principale de sécurité |
|---|---|---|
| Navigateur → proxy inverse | Certificat TLS public | Quel nom d'hôte le certificat authentifie |
| Proxy inverse → conteneur | HTTP ou une seconde session TLS | Si le chemin interne nécessite chiffrement et vérification |
| Validation ACME | Défi HTTP ou DNS | Quelles informations d'identification et quels ports prouvent le contrôle du domaine |
| En-têtes transférés | Paramètres de confiance du proxy et de l'application | Quelles valeurs d'identité client et de schéma sont acceptées |
FAQ
Chaque conteneur a-t-il besoin de son propre certificat TLS public ?
Non, lorsque le proxy inverse termine le TLS. Le proxy peut détenir des certificats pour plusieurs noms d'hôtes et transférer les requêtes déchiffrées vers des conteneurs internes séparés.
Le HTTP du proxy vers un conteneur est-il toujours non sécurisé ?
Cela dépend de la frontière de confiance. Un réseau isolé sur le même hôte a une exposition différente d'un réseau routé ou partagé. Le HTTPS avec vérification de certificat offre une protection plus forte sur des segments non fiables.
Un proxy inverse peut-il router le HTTPS sans le déchiffrer ?
Oui. Le passage TLS peut router en utilisant des informations de poignée de main telles que le SNI tandis que le backend termine le TLS, mais le proxy perd la visibilité et le filtrage normaux au niveau HTTP.
Pourquoi les conteneurs devraient-ils rejeter l'accès direct externe ?
Lorsqu'une application fait confiance aux en-têtes transférés, un accès direct permet aux clients de contourner l'assainissement du proxy et de soumettre des valeurs d'identité, de schéma ou de nom d'hôte falsifiées.
Conclusion finale
Un proxy inverse gère le TLS en devenant le point de terminaison cryptographique public et en créant une seconde connexion, gouvernée séparément, vers chaque conteneur. Une sécurité fiable dépend d'un routage correct des noms d'hôtes, du renouvellement automatisé mais protégé des certificats, d'un chiffrement en amont délibéré, de l'assainissement des en-têtes de transfert et du blocage des chemins contournant le proxy de confiance.
Centre Tech & IA
Plus à lire

État d’exécution vs état persistant dans Home Assistant : que doit survivre à un redémarrage ?
Home Assistant ne conserve pas chaque valeur en temps réel ; la configuration, les registres, certains états restaurés, l’historique et les données de déploiement...

Comment Home Assistant authentifie-t-il les sessions locales et distantes ?
Les sessions Home Assistant locales et distantes utilisent le même modèle d’identité côté serveur ; l’accès à distance modifie le chemin et la limite...

Pourquoi les requêtes d’historique de Home Assistant peuvent-elles ralentir à mesure que les données de l’enregistreur augmentent ?
L’augmentation du nombre d’enregistrements peut accroître le coût des requêtes d’historique lorsque la plage demandée concerne davantage de lignes, que les défauts de cache...

