← Toutes les notes

Mai 2026

Le redirect loop derrière un tunnel

Le force-HTTPS du reverse proxy entre en conflit avec la terminaison TLS amont et boucle. Un flag de config règle le problème sans toucher au routage.

Le site répond ERR_TOO_MANY_REDIRECTS. Le navigateur boucle entre http et https sans jamais s’arrêter. Rien dans le code applicatif ne redirige. Le coupable est plus bas.

Deux étages qui forcent HTTPS

Le TLS est terminé en amont, par le tunnel ou le CDN. Vers le reverse proxy, le trafic arrive en clair sur HTTP. Le proxy, lui, a le force-HTTPS activé. Il voit du HTTP, croit la connexion non sécurisée, et redirige vers HTTPS.

Le client repart en HTTPS vers l’amont, qui termine le TLS et renvoie du HTTP au proxy. Le proxy redirige encore. La boucle est fermée. Le proxy ne sait pas que le TLS a déjà eu lieu un cran plus haut.

Désactiver la redirection à l’étage proxy

Le correctif est un flag de config : couper le force-HTTPS du reverse proxy, ou lui faire respecter l’en-tête X-Forwarded-Proto émis par l’amont. La terminaison TLS reste là où elle doit être, en bordure.

Le routage par port aide à garder les rôles nets. Un port reçoit le trafic d’edge déjà déchiffré, un autre sert l’usage interne direct. Chaque entrée a une politique TLS explicite.

Le principe : une seule couche termine le TLS, une seule couche redirige. Quand deux étages forcent HTTPS, ils se renvoient la balle indéfiniment.