繁体   English   中英

Nginx通过cookie转发强制SSL(https)

[英]Nginx force SSL (https) with cookie forwarding

我正在通过以下方式强制nginx的虚拟主机使用SSL

if ($ssl_protocol = "") {
    rewrite ^ https://www.mydomain.com$request_uri? permanent;
}

问题是,如果用户使用会话(cookie)登录,然后打开一个新选项卡,然后转到http://www.mydomain.com该方法可以正常工作并转发到https ,但是会话丢失。 我认为是因为cookie没有通过nginx的重写规则转发。

有没有办法转发cookie并运行重写?

谢谢。

Cookies与重定向无关。 发送“重定向”消息的服务器与此无关。 纯粹由网络浏览器决定是否根据给定的请求发送cookie。 这基于在cookie上设置的属性,例如Path,Domain,Secure和HttpOnly。 我想您会发现,用户Cookie上的属性的设置方式告诉浏览器在访问新URL时不要发送它们。 例如,如果您要重定向到其他域,则肯定会发生这种情况。

解决该问题的方法是将这两个问题分开,保持会话和身份验证。 然后,您可以使会话ID不受保护,仅用于维护会话,并使用单独的cookie来检查登录状态。

如果网站使用HTTP和HTTPS混合,则ID将在URL中以纯文本格式传输

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM