これは、SSLとTLSの違いについて説明した、かなり詳細な回答です。つまり、TLS は SSL の後継であり、TLS 1.0 は「SSL 3.1」と見なすことができます。
JSSE リファレンス ガイドの SSLContext セクションを見ると、次のように書かれています。
これらの静的メソッドはそれぞれ、少なくとも要求されたセキュア ソケット プロトコルを実装するインスタンスを返します。返されたインスタンスは、他のプロトコルも実装する場合があります。たとえば、getInstance("TLSv1") は、"TLSv1"、"TLSv1.1"、および "TLSv1.2" を実装するインスタンスを返す場合があります。
これは、標準名ドキュメントにも記載されています。
特に、 SSLContextImplの Oracle/OpenJDK 7 ソース コードを確認すると、そのすべてSSLContext
の がすべてのプロトコルをサポートしていることがわかります (SSLv2 Client Hello を使用する SSLv3 から TLS 1.2 まで)。異なるのは、デフォルトで有効になっているプロトコルです。さらに、他の Java 実装 (IBM JRE など) は異なる動作をする可能性があるため、一般的にこれに依存するべきではありません。
特定のプロトコル セットを接続に使用する場合は、SSLSocket
またはSSLEngine
のsetEnabledProtocols
メソッドを使用する必要があります。それ以外の場合は、プロバイダーのドキュメントで説明されているように、デフォルト値が使用されます。