2016-11-22 70 views
0

Java EE中有什么方法可以知道将SSL/TLS协议用于安全连接?Javaee中的SSL/TLS协议版本

理想情况下,我希望应用程序使用TLS/1.2的一切,但我知道一些browswers(即9说)默认情况下不会支持。如果我将环境配置为只允许TLS/1.2,那么IE 9会“哦,这个网站已关闭”,如果你点击帮助,提前它实际告诉你“哦,这可能是IE中的设置禁用敏感加密,你并做到这一点,以启用明智的加密“。 (我稍微解释一下)。

无论如何,回应是一个“网站倒下”,这是不正确的,它只是IE不希望支持明智的协议。我的首选是将配置更改为允许像TLS/1.0这样的较弱协议,然后我的应用程序可以检测到正在使用弱协议,并且在每个页面上都可能会出现某种警告“您知道这不安全,请单击此处获取更多信息“,即一个有用的信息,确认网站正在运行,但他们的浏览器不安全。我无法看到构成HttpServletRequest的一部分的任何属性,这些属性可能会给我这些信息或任何其他方法来回答问题。

有什么想法?

回答

0

我不确定您是否可以事先获得TLS协议的兼容性。

如何在请求中检查浏览器及其版本。
如果任何浏览器(例如您提到的ie)遇到问题,请在响应中发送您的警告消息以及实际内容。

可以使用获得浏览器信息:

String userAgent = request.getHeader("User-Agent"); 

另外,你也可能抬头为实现这一目标使用JavaScript一些答案。由于它驻留在客户端,因此可以用来处理这种情况。

+0

不幸的是,用户代理并不可靠,因为您可以使用支持TLS 1.2的Internet Explorer 8,但默认情况下会明确请求使用不安全的协议。所以只是因为它的IE 8并不意味着它不安全。 JavaScript不是理想的选择,因为它易于禁用,这意味着检查是客户端,因此更容易工作。 –