单独的JDK/JRE版本是否确定SSLSocket.getSupportedProtocols()的结果?或者还有其他可以影响这个结果的配置/启动参数吗?例如,如果应用程序在JDK 1.7 update 21上运行,则此方法将返回[SSLv2Hello,SSLv3,TLSv1,TLSv1.1,TLSv1.2]。但是,如果应用程序在不支持SSLv3的JDK 1.8上运行,该方法是否仅返回[TLSv1,TLSv1.1,TLSv1.2]?单独的JDK/JRE版本是否确定SSLSocket.getSupportedProtocols()的结果?
我假设这个问题的答案也适用于默认的启用列表。例如,在JDK 1.7 update 21中,SSLSocket.getEnabledProtocols()默认返回[SSLv3,TLSv1]。所以对于JDK 1.8,默认启用列表是[TLSv1.1,TLSv1.2]?
在一个侧面说明,的SSLv2是较新的Java版本中完全删除,不能使用,因此为什么它不” t出现在'jdk.tls.disabledAlgorithms'列表中。 – Powerlord
配置在这个java.security文件中启用/禁用SSL/TLS协议是否正常?或者我应该在客户端代码中处理这个问题?也就是说,我将检索所有支持的协议,然后取出我不想要的那些(SSLv3,TLSv1),并将其余的setEnabled取出。 – Zoomzoom
@Zoomzoom你可以真的做到这一点。我做了比其他任何事情都更多的Web开发,并且在那里只列出要使用的协议/密码是很平常的。 – Powerlord