正如您在standard names documentation中看到的,所有条目(SSLv3,TLSv1.0,TLSv1.1,…)都表示它们可能支持其他版本.
实际上,在Oracle JDK(和OpenJDK)中,他们都这样做.如果查看source code,则TLS10Context类用于TLS,SSL,SSLv3和TLS10,TLS11Context用于TLSv1.1,TLS12Context用于TLSv1.2.所有版本都支持所有版本的SSL / TLS,默认情况下启用的内容会有所不同.
这可能与其他提供商或JRE供应商不同.您当然应该选择一个至少支持您要使用的协议版本的程序.
作为一般规则,请使用最高版本号(SSLv3< TLSv1.0< TLSv1.1 ...),这可能取决于您要与之通信的各方支持的内容.
默认情况下启用哪些协议取决于Oracle JRE的确切版本.
在查看the source code for sun.security.ssl.SunJSSE in OpenJDK 7u40-b43时,就SSLContext协议而言,TLS只是TLSv1的别名(SSL和SSLv3也是如此).查看各种implementations of SSLContextImpl(这是SSLContextImpl本身的内部类):
>所有支持所有协议.
>默认情况下,在服务器端启用所有协议.
>默认启用的客户端协议有所不同:
> TLS10Context(用于协议SSL,SSLv3,TLS,TLSv1)默认在客户端启用SSLv3到TLSv1.0.
> TLS11Context(用于协议TLSv1.1)默认情况下也启用TLSv1.1.
> TLS12Context(用于协议TLSv1.2)默认情况下也启用TLSv1.2.
>如果启用了FIPS,则不支持SSL(因此默认情况下不启用).
同样,在查看