Session 使用cookie转发的Nginx强制SSL(https)
我正在对Session 使用cookie转发的Nginx强制SSL(https),session,cookies,ssl,nginx,rewrite,Session,Cookies,Ssl,Nginx,Rewrite,我正在对nginx中的vhost强制执行SSL,包括: if ($ssl_protocol = "") { rewrite ^ https://www.mydomain.com$request_uri? permanent; } 问题是,如果用户使用会话(cookie)登录,然后打开一个新选项卡并转到http://www.mydomain.com此操作可以工作并转发到https,但会话丢失。我认为是因为cookie没有通过nginx的重写规则转发 是否有办法转发cookies并运行重写
nginx
中的vhost强制执行SSL
,包括:
if ($ssl_protocol = "") {
rewrite ^ https://www.mydomain.com$request_uri? permanent;
}
问题是,如果用户使用会话(cookie)登录,然后打开一个新选项卡并转到http://www.mydomain.com
此操作可以工作并转发到https
,但会话丢失。我认为是因为cookie没有通过nginx的重写规则转发
是否有办法转发cookies并运行重写
谢谢。Cookies与重定向无关。发送“重定向”消息的服务器与此无关。纯粹是web浏览器决定是否根据给定请求发送cookie。这是基于cookie上已设置的属性,例如路径、域、安全和HttpOnly。我想您会发现,用户cookie上的属性设置方式告诉浏览器在访问新URL时不要发送它们。这肯定会发生,例如,如果您正在重定向到另一个域。Cookies与重定向无关。发送“重定向”消息的服务器与此无关。纯粹是web浏览器决定是否根据给定请求发送cookie。这是基于cookie上已设置的属性,例如路径、域、安全和HttpOnly。我想您会发现,用户cookie上的属性设置方式告诉浏览器在访问新URL时不要发送它们。例如,如果您重定向到另一个域,这种情况肯定会发生。解决问题的方法是将这两个问题分开,维护会话和身份验证。然后,您可以不保护会话id,仅用于维护会话,并使用单独的cookie检查登录状态
如果站点使用HTTP与HTTPS混合,则id将以明文形式在URL中传输。解决问题的方法是将这两个问题分开,维护会话和身份验证。然后,您可以不保护会话id,仅用于维护会话,并使用单独的cookie检查登录状态 如果站点使用HTTP与HTTPS混合,则id将以明文形式在URL中传输