我的 CentOS 服务器上有两个不同的网络服务器上的两个网站( NGINX& nodejs )。
在我的 NGINX 配置中,我已将 http://example.com 重定向到 https://example.com < / em> 永久
另一方面,网址 http://example.com:8080 由 nodejs 处理,不会重定向到任何地方。
情景
当我在浏览器中请求 http://example.com ( Chrome,Firefox或Safari )时,会将其重定向到 < em> https://example.com ,这没关系。当我输入 http://example.com:8080 时,它也会重定向到 https://example.com:8080 ,而这不是正确。
当我清除浏览器缓存时,网址 http://example.com:8080 正常工作,但在委托 http://example.com 之后,网址 http://example.com:8080 再次重定向到 HTTPS 。任何人都可以帮我解决这个问题吗?
答案 0 :(得分:2)
您可能会遇到HTTP Strict Transport Security (HSTS)规范定义的内容。
您需要检查https://example.com
请求的响应。它可能包含Strict-Transport-Security
标头,指示浏览器重写example.com
域请求的所有URI以使用安全方案。来自HTTP严格传输安全(HSTS)规范8.3. URI Loading and Port Mapping section的相关摘录:
UA必须用“https”[RFC2818]替换URI方案,并且 如果URI包含显式端口组件“80”,那么 UA必须将端口组件转换为“443”或
如果URI包含不是的显式端口组件 等于“80”,必须保留端口组件值; 否则,
如果URI不包含显式端口组件,则为UA 绝不能添加一个。
注意:这些步骤可确保HSTS策略适用于HTTP 在HSTS主机的任何TCP端口上。
注意:在提供显式端口的情况下(和a 在较小范围内使用子域名,很可能是这样的 实际上有一个运行的HTTP(即非安全)服务器 指定的端口,因此HTTPS请求将失败 (见附录A第6项(“设计决定说明”))。
有关详细信息,请查看Strict-Transport-Security MDN page。