对于运行旧版本 Java 和 Tomcat(分别为 6 和 5.5)的站点,最新版本的 chrome 失败并显示 ERR_SSL_FALLBACK_BEYOND_MINIMUM_VERSION。
这很好,因为 Chrome 禁用了 SSLv3 因为 POODLE。我转到 conf/server.xml 并明确指定 sslProtocol="TLSv1"
。
站点打开成功,但有时某些资源(仅 js 和 css)无法使用相同的 ERR_SSL 打开。我使用 iptables 转发到 Tomcat,所以没有 apache/nginx 也没有代理。
以下是说明失败情况的屏幕截图。禁用缓存后,您可以看到某些 js 和 css 文件正常提供(实际的 jsps 和所有图像始终正常提供),而有些则失败:
我找不到失败与他们的声明之间的任何联系。此外,有时这些并没有失败。
我能做点什么吗(除了升级 Java,这不能保证工作并且需要很多努力,因为该站点可能无法工作,并且必须重新编译,重新打包等),或者是这是一个 Chrome 错误?
最佳答案
指定 sslProtocol="TLSv1"
在 Tomcat 中 <Connector />
element 仅保证指定的协议(protocol)可用,而不保证它是唯一可用的。例如,连接器
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true" maxThreads="150" scheme="https" secure="true" clientAuth="false" sslProtocol="TLSv1" ... />
将提供 SSLv3 和 TLSv1。为了禁用 SSLv3,您需要使用另一个属性明确说明启用了哪些协议(protocol)。我不熟悉 Tomcat 5 的语法,但 Tomcat 6 的语法是 protocols="TLSv1"
而 Tomcat 7 是 sslEnabledProtocols="TLSv1"
.
关于java - Chrome 中的随机 ERR_SSL_FALLBACK_BEYOND_MINIMUM_VERSION,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27613646/