jww*_*jww 54 java ssl protocol
Java 7 禁用客户端的 TLS 1.1 和 1.2。来自Java 加密体系结构 Oracle Providers 文档:
尽管 Java SE 7 发行版中的 SunJSSE 支持 TLS 1.1 和 TLS 1.2,但默认情况下这两个版本都未启用客户端连接。一些服务器没有正确实现前向兼容性并拒绝与 TLS 1.1 或 TLS 1.2 客户端对话。对于互操作性,默认情况下,SunJSSE 不会为客户端连接启用 TLS 1.1 或 TLS 1.2。
我有兴趣在系统范围的设置(可能通过配置文件)上启用协议,而不是每个 Java 应用程序的解决方案。
如何在管理上启用TLS 1.1 和 1.2系统范围?
注意:从 POODLE 开始,我想在管理上禁用SSLv3系统范围。(SSLv3 的问题比 POODLE 早至少 15 年,但 Java/Oracle/Developers 不尊重基本的最佳实践,所以像你我这样的用户只能清理烂摊子了)。
这是Java版本:
$ /Library/Java/JavaVirtualMachines/jdk1.7.0_07.jdk/Contents/Home/bin/java -version
java version "1.7.0_07"
Java(TM) SE Runtime Environment (build 1.7.0_07-b10)
Java HotSpot(TM) 64-Bit Server VM (build 23.3-b01, mixed mode)
Run Code Online (Sandbox Code Playgroud)
Tom*_*ant 32
您可以添加以下属性-Dhttps.protocols=TLSv1.1,TLSv1.2来配置 JVM 以指定在 https 连接期间应使用哪个 TLS 协议版本。
cns*_*nst 14
假设 Java 1.7,您可以尝试在启动脚本中添加如下内容:
JAVACMD="$JAVACMD -Ddeployment.security.SSLv2Hello=false -Ddeployment.security.SSLv3=false -Ddeployment.security.TLSv1=false -D\
deployment.security.TLSv1.1=true -Ddeployment.security.TLSv1.2=true"
其他一些建议:https : //blogs.oracle.com/java-platform-group/entry/java_8_will_use_tls
对于 Mac OS X 上的 Java 7,您转到System Preferences > Java,Java 控制面板将在单独的窗口中打开。然后转到Advanced选项卡并向下滚动到该Advanced Security Settings部分并选中Use TLS 1.1和Use TLS 1.2复选框。

小智 8
我最近刚刚研究了这个,我想补充一下 - 这对 JDK 不起作用,deployment.properties 只与小程序和 JRE 中运行的其他东西相关。
对于 JDK 应用程序(例如需要连接到 LDAP 的服务器),服务器是客户端,但部署安全。不会工作。
除非你写一些像 SSLContext.getInstance("TLSv1.2"); 这样的代码,否则无法改变它。
| 归档时间: |
|
| 查看次数: |
332623 次 |
| 最近记录: |