在Firefox中键入URL http地址将自动重定向到HTTPS

时间:2015-10-23 04:15:21

标签: apache google-chrome firefox nginx

我在Firefox中遇到这个小问题但很烦人。

我有一台服务器有两个Web服务器实例:

  1. 将自动重定向到HTTPS的nginx网络服务器
  2. 内置于Rocket.Chat消息传递平台的Web服务器
  3. Rocket.Chat的内置Web服务器将接受此端口的连接:8818。首先在端口8818访问Rocket.Chat的Web服务器很好(http://ip-server:8818)。但是当我输入http://ip-server/之后,它会自然地重定向到https://ip-server,因为nginx配置为将80个流量重定向到443(https),问题是每当我第一次使用https网站时(https://ip-server),与http://ip-server:8818一起使用会强制浏览器重定向到https://ip-server:8818,使我的Rocket.Chat安装不再可访问。可以通过清除历史记录来部分修复,然后我会先使用http://ip-server:8818。我强制隔离这两个实例以暂时解决此问题,一个在私有窗口中,另一个在正常会话中。

    我也发现在浏览Google Chrome时也是如此。你们有没有想法如何解决这个问题?我认为因为这对两个浏览器来说都很常见,所以我必须配置服务器端的东西(Nginx或Rocket.Chat)。

    我尝试将Firefox的浏览器中的browser.urlbar.autoFill更改为false:config无效。

    谢谢, 艾伦

2 个答案:

答案 0 :(得分:0)

我想,你已经启用了HSTS,这就是它的工作原理。 无论端口如何,HSTS都适用于整个主机。因此,只要您的浏览器从https://some-host获得HSTS标头,它就会将http应用于https重定向到some-host与任何port部分的任何请求。< / p>

请参阅https://tools.ietf.org/html/rfc6797

在介绍结束时

  

此规范还包含[JacksonBarth2008]的概念      该政策适用于&#34;整个主机&#34;依据:适用于      HTTP(仅)通过发布主机的任何TCP端口

答案 1 :(得分:0)

首先确认它是HSTS:

查看返回的标头(在开发人员工具中或使用securityheaders.io之类的工具)。如果您看到Strict-Transport-Security标头,那就是它。

假设是,那么你需要在服务器级别关闭它。对于Chrome,您只需更改服务器配置,将其关闭,然后访问chrome:// net-internals / #hsts并删除该域的HSTS政策。

对于FireFox和其他浏览器而言,它并不容易,因为它们无法清除HSTS策略。所以你需要做的是(这也适用于Chrome btw):

  1. 找到服务器配置,并将max-age更改为0,然后重新加载服务器配置。
  2. 在浏览器中加载https网站以加载此新策略(会立即过期)。
  3. 完全删除服务器配置,然后重新加载配置。
  4. 您现在应该可以通过HTTP访问该网站。
  5. 您还不想通过HTTPS聊天的任何原因?