Apache 为什么Firefox和Chrome坚持对手动输入的非SSL网站使用HTTPS
我希望能得到一些帮助来了解情况:Firefox和Chrome都无法加载我的非SSL网站,比如subdomain.example.com,并出现以下SSL错误(均在ubuntu 14.04 i386上):Apache 为什么Firefox和Chrome坚持对手动输入的非SSL网站使用HTTPS,apache,google-chrome,firefox,redirect,ssl,Apache,Google Chrome,Firefox,Redirect,Ssl,我希望能得到一些帮助来了解情况:Firefox和Chrome都无法加载我的非SSL网站,比如subdomain.example.com,并出现以下SSL错误(均在ubuntu 14.04 i386上): FF30:ssl\u错误\u接收\u记录\u过长 Chrome 35:错误\u SSL\u协议\u错误 这是在我在父域上设置(并遵循)到SSL的重定向(302)后开始发生的,比如到。在浏览器上进行完全缓存清理后,它将恢复正常。但是,一旦我访问父域,我就会在子域上遇到问题 我从未使用“http
- FF30:ssl\u错误\u接收\u记录\u过长
- Chrome 35:错误\u SSL\u协议\u错误
值得一提的是,这个Apache配置错误并不难犯。实际上,在默认的Ubuntu配置中(可能与Debian相同),只需启用/加载SSL模块(而不提供使用SSL的站点配置)。我刚刚找到了原因。父域上的ssl站点包含以下STS响应标头:
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
这会根据规范触发浏览器行为。另一个可能导致这种情况的原因是来自
http://example.com
至https://example.com
。当人们直接使用301尝试mod_rewrite
/重定向配置时,这种情况可能会非常频繁(我认为最好使用302,因为这个原因)。我以前使用301重定向,但改为302。为什么301重定向会影响子域?@PerdoPedruzzi,你是对的,301不应该影响子域本身,但如果浏览器以前使用301访问过该子域,它会倾向于记住它(无论你后来做了什么更改)。这不是我的原因。我认为这与SPDY支持有关。显而易见的解决方案是在子域上也使用https。如果主域证书不支持通配符域,请从letsencrypt获取免费证书。此问题似乎与主题无关,因为它与编程无关。请参见帮助中心中的。也许,或者是一个更好的提问的地方。这不是关于编程,而是与软件开发密切相关。通常由程序员为web应用程序设置STS配置(在我的例子中,是在SpringSecurity上)。问题在于对HTTP协议特性的理解以及如何修复配置错误的webapp。但是,它也与系统管理/dev ops有关。