【问题标题】:Why does firefox immediately request https when I type in http URL?为什么当我输入 http URL 时,firefox 会立即请求 https?
【发布时间】:2011-11-09 05:04:22
【问题描述】:

我有一个绑定到 http 和 https 的 IIS7 ASP.NET 网络服务器。

所以,我在 Firefox 7.0.1 中输入 http://test35-control.musac.school.nz。 在服务器日志中我立即看到

2011-11-09 04:57:16 130.123.148.35 获取 / - 443 - 130.123.96.22 Mozilla/5.0+(Windows+NT+6.1;+WOW64;+rv:7.0.1)+Gecko/20100101+Firefox/7.0.1 200 0 0 123

在 Firebug 中,Net 面板 [with persist selected] 将第一个请求显示为 https://test35-control.musac.school.nz/

因此,Firefox 似乎忽略了我请求 http 并转而访问 https 站点的事实。这是为什么?

可能在网上回答,但是谷歌搜索的通用术语太多......

我手头上的所有其他浏览器(IE8、Chrome、Opera)似乎也发生了同样的情况。

【问题讨论】:

  • 您有两种协议的站点绑定吗?你是否开启了重定向功能?
  • 是绑定,但不是重定向;当我注意到它已经开始工作时,我正要开始设置重定向!
  • 涉及代理。这可能正在做某事,但这不会阻止 firebug 中的网络面板显示原始 http:get。我要安装 Ethereal 并验证到底发生了什么......
  • 您没有安装 URL 重写模块?如果您不这样做,那么它一定与代理有关。除非有明确的指示,否则 IIS 不会重定向。您是否只记录了 443 个请求而没有 80 / 8080 个请求?这告诉我代理正在重定向,因为 http 请求从未到达服务器。
  • http://请求是否正常重定向到https://?如果是这样,Firefox 是否只是缓存了重定向?如果你清除缓存,你会看到这两个请求吗?

标签: http firefox ssl https


【解决方案1】:

对于后代,Firefox 通过 HTTPS(在默认端口 443 上)向键入的 URL 发出请求的不太可能的原因是,如果它之前通过 HTTPS 从服务器获得了带有 Strict-Transport-Security 标头和 max-age 的响应值仍然适用。

解释一下,据我所知——尽管我目前无法找到明确证实这一点的 Mozilla 资源——如果您键入地址,Firefox 将默认使用 HTTP 协议。至少这可以通过经验来证实。

但是,当通过 HTTPS 发出请求并且响应包含上述 HTTP 标头时,Firefox 将遵照the specification 并在max-age 指定的时间段内,始终且仅对每个请求使用 HTTPS服务器,从不使用 HTTP。

在您的情况下,您可能正在测试 HTTPS,并且服务器被配置为使用一些尚未过期的 max-age 值来提供标头 - Firefox 的行为基本上就像您在中键入 https://默认情况下,在您的其他方案无前缀 URL 的前面,而不是 http://

这种行为不是 Firefox 特有的——它适用于同时代的 Chrome、Opera、Vivaldi、Brave 及其衍生产品,前提是它们遵循相同的规范。

【讨论】:

  • 现代情况的不错补充。最初的问题是 8 年前(2011 年)。 HSTS 当时仅以草稿形式存在 :)
【解决方案2】:

您没有安装HTTPS Everywhere 扩展程序,是吗?如果它也发生在其他浏览器上,则不太可能。我认为 HTTP 服务器正在提供对站点 HTTPS 版本的重定向,而浏览器只是遵循这一点。

【讨论】:

  • 谢谢,但没有。我在尝试用谷歌搜索这个问题时确实注意到了这个扩展。我只是尝试禁用我的所有插件以防万一(萤火虫,选项卡中的下载,下载帮助程序)。没有区别。
  • 我不知道这是问题所在。我将尝试一些禁用附加/扩展的链接。
【解决方案3】:

好的,事实证明它没有这样做;就是这样:

  • Firebug 网络面板没有记录所有流量
  • IIS 有时会乱序记录重定向的请求**

我们的系统正在使用自定义 403 错误页面和用 Asp.net 编写的服务器端 302 重定向进行重定向。这是 2 年前由一个现已离开的人完成的,没有人记得 :) 应用程序设置为需要 SSL(在 IIS 管理器,SSL 设置中),以在通过 HTTP 访问时强制出现 403 错误。 我们有 http 和 https 的绑定。

其他可能让我感到困惑的事情:

  • 自动配置的代理 - 只是让追踪变得困难,据我所知它没有进行重定向。
  • 浏览器缓存了 302 - 虽然不应该这样,但这是一个临时举措
  • IIS 日志需要刷新才能保持最新(有没有更好的方法实时查看它们??) - netsh http flush logbuffer
  • IIS 以 UTC 登录 :)

这很有趣。

** IIS 有时似乎以不同的顺序记录重定向请求,例如

2011-11-10 02:17:42 130.123.148.35 GET / - 443 - 130.123.96.22 Mozilla/5.0+(Windows+NT+6.1;+WOW64;+rv:7.0.1)+Gecko/20100101+Firefox/7.0.1 302 0 0 3
2011-11-10 02:17:42 130.123.148.35 GET /LoginPage.aspx ReturnUrl=%2f 443 - 130.123.96.22 Mozilla/5.0+(Windows+NT+6.1;+WOW64;+rv:7.0.1)+Gecko/20100101+Firefox/7.0.1 302 0 0 4
2011-11-10 02:17:42 130.123.148.35 GET /Dashboard/MyDashboard.aspx - 443 - 130.123.96.22 Mozilla/5.0+(Windows+NT+6.1;+WOW64;+rv:7.0.1)+Gecko/20100101+Firefox/7.0.1 302 0 0 4
2011-11-10 02:17:42 130.123.148.35 GET /LoginPage.aspx ReturnUrl=%2fDashboard%2fMyDashboard.aspx 443 - 130.123.96.22 Mozilla/5.0+(Windows+NT+6.1;+WOW64;+rv:7.0.1)+Gecko/20100101+Firefox/7.0.1 200 0 0 4
2011-11-10 02:17:42 130.123.148.35 GET / - 80 - 130.123.96.22 Mozilla/5.0+(Windows+NT+6.1;+WOW64;+rv:7.0.1)+Gecko/20100101+Firefox/7.0.1 302 0 0 83

2

2011-11-10 02:08:52 130.123.148.35 GET / - 80 - 130.123.96.22 Mozilla/5.0+(Windows+NT+6.1;+WOW64;+rv:7.0.1)+Gecko/20100101+Firefox/7.0.1 302 0 0 7
2011-11-10 02:08:52 130.123.148.35 GET / - 443 - 130.123.96.22 Mozilla/5.0+(Windows+NT+6.1;+WOW64;+rv:7.0.1)+Gecko/20100101+Firefox/7.0.1 302 0 0 4
2011-11-10 02:08:52 130.123.148.35 GET /LoginPage.aspx ReturnUrl=%2f 443 - 130.123.96.22 Mozilla/5.0+(Windows+NT+6.1;+WOW64;+rv:7.0.1)+Gecko/20100101+Firefox/7.0.1 302 0 0 7
2011-11-10 02:08:52 130.123.148.35 GET /Dashboard/MyDashboard.aspx - 443 - 130.123.96.22 Mozilla/5.0+(Windows+NT+6.1;+WOW64;+rv:7.0.1)+Gecko/20100101+Firefox/7.0.1 302 0 0 3
2011-11-10 02:08:52 130.123.148.35 GET /LoginPage.aspx ReturnUrl=%2fDashboard%2fMyDashboard.aspx 443 - 130.123.96.22 Mozilla/5.0+(Windows+NT+6.1;+WOW64;+rv:7.0.1)+Gecko/20100101+Firefox/7.0.1 200 0 0 102

【讨论】:

    猜你喜欢
    • 2019-10-30
    • 1970-01-01
    • 1970-01-01
    • 2012-07-26
    • 2018-07-20
    • 1970-01-01
    • 2012-05-24
    • 1970-01-01
    • 2021-05-25
    相关资源
    最近更新 更多