在 nginx 反向代理中,如何设置 cookie 的安全标志?

在 nginx 反向代理中,如何设置 cookie 的安全标志?

我使用 nginx 作为反向代理来为仅支持 https 的网站提供服务。因此,我希望将此网站的 cookie 标记为安全。但后端服务器是 http 服务器,因此它不会为其 cookie 设置安全标志。我如何修改响应中的 Set-Cookie 标头以添加安全标志?

答案1

您可能能够让您的 nginx 代理修改后端创建的 cookie 并设置安全标志 - 请参阅如何在 nginx 反向代理中重写 Set-Cookie 的域部分?

不过,我认为让在后端创建 cookie 的任何东西来设置安全标志会是一个更好的解决方案。如何做到这一点又是另外一个故事(或问题 :)。

答案2

我使用以下 nginx 配置代码:

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

当然,您也可以使用 FQDN,而不是正则表达式来使其动态化。

答案3

这对我有帮助:

proxy_cookie_path / "/; secure";

http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_cookie_path

相关内容