En el proxy inverso nginx, ¿cómo configurar el marcador seguro para las cookies?

12

Estoy usando nginx como proxy inverso para servir un sitio solo https. Por lo tanto, quiero que las cookies de este sitio se marquen como seguras. Pero el servidor de fondo es http, por lo que no establecerá el indicador de seguridad en sus cookies. ¿Cómo puedo modificar el encabezado Set-Cookie en respuesta para agregar un marcador seguro?

Tianyi Cui
fuente
Preguntó y respondió sobre SO. Ver SO para el ejemplo de nginx para Tomcat7: stackoverflow.com/questions/19916906/…
Joseph Lust
1
Tal anulación no es posible actualmente, pero hay un problema / ticket sobre proxy_cookie_secure: trac.nginx.org/nginx/ticket/368 Sin embargo, aún no está implementado (y el problema es antiguo).
rugk
Este módulo de terceros podría ayudarte.
Airis

Respuestas:

4

Es posible que su proxy nginx modifique las cookies creadas por el backend y establezca el indicador de seguridad. Para obtener inspiración, consulte ¿Cómo reescribir la parte del dominio de Set-Cookie en un proxy inverso nginx? .

Sin embargo, me imagino que obtener lo que sea que esté creando la cookie en el backend para establecer el indicador seguro será una mejor solución. Cómo lo haces es otra historia (o pregunta :).

Jon Rhoades
fuente
44
Puede ayudarlo a configurar el X-Forwarded-Protoencabezado y asegurarse de que su aplicación lo interprete. Esta es una técnica común y también permite que las aplicaciones mixtas http / https reaccionen correctamente según el protocolo.
Lukas
4

Yo uso el siguiente código de configuración nginx:

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

En lugar de la expresión regular para hacer esto dinámico, por supuesto, puede usar el FQDN.

r_3
fuente
¿Es solo por respuesta o por solicitud y respuesta? Cuando el cliente envía una solicitud con el conjunto de indicadores seguros, ¿nginx lo elimina para que el servidor web no se queje?
Tigran
Los clientes no envían la bandera de seguridad en el Cookieencabezado.
r_3