HTTPS et cookies de session
Passez le tableau de bord Watchflare en HTTPS derrière un reverse proxy, puis réglez COOKIE_DOMAIN et TRUSTED_PROXIES pour que les cookies de session soient Secure.
Le Hub sert le tableau de bord en HTTP sur le port 8080. Pour du HTTPS, un reverse proxy termine le TLS. Ensuite, deux variables d’environnement : les cookies de session doivent porter le flag Secure.
Remarque
Le port gRPC (50051) gère son propre TLS 1.3. Le proxy ne doit pas le terminer. Mise en place complète, passthrough compris : Reverse proxy.
Comment le Hub pose Secure
Le Hub décide tout seul, d’après la requête :
- HTTPS en direct →
Secureactivé X-Forwarded-Proto: httpsdepuis une IP de proxy de confiance →Secureactivé- HTTP simple, pas de proxy de confiance →
Securedésactivé
Derrière un reverse proxy, deux conditions : le Hub doit connaître les IP autorisées à poser X-Forwarded-Proto, et le proxy doit réellement transmettre cet en-tête.
Mettre à jour le .env
Ajoutez ces variables une fois le HTTPS en place, puis redémarrez le Hub :
COOKIE_DOMAIN=watchflare.example.com
TRUSTED_PROXIES=127.0.0.1,::1 docker compose up -d | Variable | Quand la poser |
|---|---|
COOKIE_DOMAIN | Dès que le tableau de bord a son propre nom de domaine |
TRUSTED_PROXIES | Si le reverse proxy tourne sur une autre machine que le Hub. Par défaut : loopback (127.0.0.1,::1), donc le cas « même hôte » est déjà couvert. |
En-têtes du proxy
Le Hub ne lit explicitement qu’un en-tête :
| En-tête | Valeur | Rôle |
|---|---|---|
X-Forwarded-Proto | https | Obligatoire. C’est lui qui déclenche le flag Secure. |
Host | watchflare.example.com | Recommandé. Usage habituel derrière un proxy. |
X-Real-IP | IP client | Recommandé. Sert au framework pour l’IP du visiteur. |
X-Forwarded-For | IP client | Recommandé. Pareil. |
Config Caddy, Nginx, Traefik : Reverse proxy.
Vérifier
Redémarrez le Hub, ouvrez le tableau de bord, connectez-vous. Dans les DevTools, regardez le cookie de session :
Securedoit valoirtrueDomaindoit coller àCOOKIE_DOMAIN
Si Secure n’est pas là :
TRUSTED_PROXIEScontient-il l’IP du proxy ? Au démarrage,docker compose logs watchflareliste les proxies de confiance.- Le proxy envoie-t-il bien
X-Forwarded-Proto: https?