Dans le proxy inverse nginx, comment définir l'indicateur sécurisé pour les cookies?

12

J'utilise nginx comme proxy inverse pour servir un site https uniquement. Je souhaite donc que les cookies de ce site soient signalés comme sécurisés. Mais le serveur principal est un serveur http, il ne définira donc pas l'indicateur de sécurité de ses cookies. Comment puis-je modifier l'en-tête Set-Cookie en réponse pour ajouter un indicateur sécurisé?

Tianyi Cui
la source
Interrogé et répondu sur SO. Voir SO pour l'exemple nginx pour Tomcat7: stackoverflow.com/questions/19916906/…
Joseph Lust
1
Un tel remplacement n'est actuellement pas possible, mais il existe un problème / ticket concernant proxy_cookie_secure: trac.nginx.org/nginx/ticket/368 Cependant, il n'est pas encore implémenté (et le problème est ancien).
rugk
Ce module tiers pourrait vous aider.
Airis

Réponses:

4

Vous pourriez être en mesure d'obtenir votre proxy nginx modifier les cookies créés par le backend et définir le drapeau sécurisé - pour l'inspiration, voir Comment réécrire la partie domaine de Set-Cookie dans un proxy inverse nginx? .

Cependant, j'imagine que l'obtention de tout ce qui crée le cookie sur le backend pour définir l'indicateur sécurisé va être une meilleure solution. Comment vous faites cela est une autre histoire (ou question :).

Jon Rhoades
la source
4
Cela peut vous aider à définir l'en- X-Forwarded-Prototête et à vous assurer qu'il est interprété par votre application. Il s'agit d'une technique courante qui permet également aux applications mixtes http / https de réagir correctement en fonction du protocole.
Lukas
4

J'utilise le code de configuration nginx suivant:

# make cookie secure (case sensitive)
proxy_cookie_domain ~(?P<secure_domain>([-0-9a-z]+\.)?[-0-9a-z]+\.[a-z]+)$ "$secure_domain; secure";

Au lieu de l'expression rationnelle pour rendre cette dynamique, vous pouvez bien sûr utiliser le FQDN.

r_3
la source
S'agit-il uniquement de la réponse ou de la demande et de la réponse Lorsque le client envoie une demande avec le jeu d'indicateurs sécurisé, nginx le supprime-t-il pour que le serveur Web ne se plaint pas?
Tigran
Les clients ne renvoient pas l'indicateur sécurisé dans l'en- Cookietête.
r_3