我在Firefox中遇到这个小问题但很烦人。
我有一台服务器有两个Web服务器实例:
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无效。
谢谢, 艾伦
答案 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):
您还不想通过HTTPS聊天的任何原因?