Java如何为ClientHello

时间:2017-03-16 03:48:57

标签: java ssl jsse

我知道不同的JVM有不同的已启用协议列表。 JVM如何从列表中选择协议版本?

  1. 是否选择启用率最高的版本?

  2. 我读到服务器默认启用所有协议(客户端不同,后者必须使用-Dhttps.protocols开关选择启用的协议)。 因此,如果JVM与-server交换机一起运行,但是客户端调用另一个https站点,将使用哪个协议?它是Java的最高支持版本协议吗?

  3. -Djdk.tls.client.protocols开关与-Dhttp.protocols开关有何不同? (两者似乎都在控制已启用的客户端协议列表?(并且似乎都没有影响服务器支持的协议列表)

  4. 有没有办法有选择地关闭服务器的某些协议?

  5. - 索尼

1 个答案:

答案 0 :(得分:2)

  

我知道不同的JVM有不同的已启用协议列表。 JVM如何从列表中选择协议版本?   1.它是否选择启用最高的版本?

  
      
  1. 我读到服务器默认启用所有协议(客户端不同,后者必须使用-Dhttps.protocols开关选择启用的协议)。
  2.   

我不知道您在哪里阅读,但默认情况下,客户端和服务器都启用了所有安全协议。客户可能无需使用https.protocols

  

因此,如果JVM与-server交换机一起运行,但是客户端调用另一个https站点,将使用哪个协议?它是Java的最高支持版本协议吗?

是。 -server开关与此无关。它选择HotSpot的实现。无论如何都与TLS无关。

  
      
  1. -Djdk.tls.client.protocols开关与-Dhttp.protocols开关有何不同?
  2.   

前者适用于所有TLS;后者仅适用于HTTPS。

  
      
  1. 有没有办法有选择地关闭服务器的某些协议?
  2.   

哪个服务器?它可以在Tomcat中配置,如果你自己编写服务器,你可以自己直接配置SSLServerSocket