HTTPS et configuration de la sécurité des cookies
Exposez le tableau de bord Watchflare en HTTPS via un reverse proxy et configurez COOKIE_DOMAIN et TRUSTED_PROXIES pour que les cookies de session soient marqués Secure.
Le Hub sert son tableau de bord en HTTP sur le port 8080. Pour l’exposer en HTTPS, placez-le derrière un reverse proxy qui gère la terminaison TLS. Une fois cela fait, mettez à jour deux variables d’environnement pour que les cookies de session soient marqués Secure correctement.
Remarque
Le port gRPC (50051) gère son propre TLS 1.3 et ne doit pas être terminé par le proxy. Voir Reverse proxy pour la mise en place complète, y compris le passthrough gRPC.
Comment fonctionne la sécurité des cookies
Le Hub détecte automatiquement s’il doit poser le flag Secure sur le cookie de session JWT :
- Connexion HTTPS directe →
Secureactivé X-Forwarded-Proto: httpsdepuis une IP de proxy de confiance →Secureactivé- HTTP simple, pas de proxy de confiance →
Securedésactivé
Pour que cela fonctionne correctement derrière un reverse proxy, le Hub doit connaître les adresses IP autorisées à poser X-Forwarded-Proto, et le proxy doit réellement transmettre cet en-tête.
Mettre à jour votre .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 | Toujours, lorsque le tableau de bord est servi sur un nom de domaine personnalisé |
TRUSTED_PROXIES | Lorsque le reverse proxy tourne sur un hôte différent du Hub. Par défaut, loopback uniquement (127.0.0.1,::1), ce qui couvre les configurations sur le même hôte. |
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. Utilisé pour poser le flag Secure sur le cookie de session. |
Host | watchflare.example.com | Recommandé. Pratique proxy standard. |
X-Real-IP | IP client | Recommandé. Utilisé par le framework pour résoudre l’IP du client. |
X-Forwarded-For | IP client | Recommandé. Utilisé par le framework pour résoudre l’IP du client. |
Pour la configuration spécifique à chaque proxy (Caddy, Nginx, Traefik), voir Reverse proxy.
Vérifier que cela fonctionne
Après avoir redémarré le Hub, ouvrez le tableau de bord et connectez-vous. Inspectez le cookie de session dans les DevTools de votre navigateur :
Securedoit êtretrueDomaindoit correspondre àCOOKIE_DOMAIN
Si Secure n’est pas posé, vérifiez que :
TRUSTED_PROXIESinclut l’IP du proxy (exécutezdocker compose logs watchflarepour voir quels proxies sont de confiance au démarrage)- Le proxy transmet
X-Forwarded-Proto: https