为什么Firefox和Chrome坚持将HTTPS用于手动输入的非SSL网站

时间:2014-07-04 01:03:22

标签: apache google-chrome firefox redirect ssl

我很感激一些帮助,以了解正在发生的事情:Firefox和Chrome都无法加载我的非SSL网站,例如subdomain.example.com,出现以下SSL错误(均在ubuntu 14.04 i386上):< / p>

  • FF30:ssl_error_rx_record_too_long
  • Chrome 35:ERR_SSL_PROTOCOL_ERROR

这是在我在父域上设置(并跟随)重定向(302)到SSL之后开始的,比如说http://example.comhttps://example.com。在浏览器上清除完整缓存后,它恢复正常。但是一旦我访问父域,我就会在子域上遇到问题。

我从未使用&#34; https://&#34;输入子域名网址方案前缀。我通常不会输入任何前缀,即使我明确地使用&#34; http://&#34;前缀,也会发生这种情况。它不仅在地址栏上,链接也是如此。

我非常确信子域上的非SSL站点没有任何问题。

我考虑填写错误报告,但这不太可能是两个浏览器中的错误,更可能是我遗漏了一些错误。

有任何规则,如果给定域上的网站支持SSL(或将http重定向到https),那么假设子域上的网站也可以这样做吗?

我后来发现了SSL错误的原因。但问题仍然存在(现在消息被连接拒绝):

Apache Web服务器配置为侦听端口80和443,但没有&#34; SSLEngine on&#34;条款。这有效地使它在端口443上提供纯HTTP。

值得一提的是,这个Apache配置错误并不难以落入。实际上,在默认的Ubuntu配置中(可能与Debian相同),只需启用/加载SSL模块(而不是提供使用SSL的站点配置)。

1 个答案:

答案 0 :(得分:2)

我刚刚找到了原因。父域上的ssl站点包括以下STS响应头:

Strict-Transport-Security: max-age=31536000 ; includeSubDomains

按规范触发浏览器行为。