public class SSLContext extends Object
SSLEngine
のファクトリとして機能する、セキュアソケットプロトコルの実装を表します。このクラスは、鍵マネージャーと信頼マネージャーの任意の組み合わせ、および安全な乱数バイトのソースを使用して初期化されます。
Java プラットフォームの実装は、すべて次の標準の SSLContext
プロトコルをサポートする必要があります。
修飾子 | コンストラクタと説明 |
---|---|
protected |
SSLContext(SSLContextSpi contextSpi, Provider provider, String protocol)
SSLContext オブジェクトを生成します。
|
修飾子と型 | メソッドと説明 |
---|---|
SSLEngine |
createSSLEngine()
このコンテキストを使用して、新しい
SSLEngine を作成します。 |
SSLEngine |
createSSLEngine(String peerHost, int peerPort)
補足的なピア情報を使用して、このコンテキストを使用する新しい
SSLEngine を作成します。 |
SSLSessionContext |
getClientSessionContext()
クライアントセッションコンテキストを返します。このコンテキストには、クライアント側 SSL ソケットのハンドシェーク中に使用できる SSL セッションが指定されています。
|
static SSLContext |
getDefault()
デフォルトの SSL コンテキストを返します。
|
SSLParameters |
getDefaultSSLParameters()
この SSL コンテキストのデフォルト設定を示す SSLParameters のコピーを返します。
|
static SSLContext |
getInstance(String protocol)
指定されたセキュアソケットプロトコルを実装する
SSLContext オブジェクトを返します。 |
static SSLContext |
getInstance(String protocol, Provider provider)
指定されたセキュアソケットプロトコルを実装する
SSLContext オブジェクトを返します。 |
static SSLContext |
getInstance(String protocol, String provider)
指定されたセキュアソケットプロトコルを実装する
SSLContext オブジェクトを返します。 |
String |
getProtocol()
この
SSLContext オブジェクトのプロトコル名を返します。 |
Provider |
getProvider()
この
SSLContext オブジェクトのプロバイダを返します。 |
SSLSessionContext |
getServerSessionContext()
サーバーセッションコンテキストを返します。このコンテキストには、サーバー側 SSL ソケットのハンドシェーク中に使用できる SSL セッションが指定されています。
|
SSLServerSocketFactory |
getServerSocketFactory()
このコンテキストの
ServerSocketFactory オブジェクトを返します。 |
SSLSocketFactory |
getSocketFactory()
このコンテキストの
SocketFactory オブジェクトを返します。 |
SSLParameters |
getSupportedSSLParameters()
この SSL コンテキストでサポートされる設定を示す SSLParameters のコピーを返します。
|
void |
init(KeyManager[] km, TrustManager[] tm, SecureRandom random)
このコンテキストを初期化します。
|
static void |
setDefault(SSLContext context)
デフォルトの SSL コンテキストを設定します。
|
protected SSLContext(SSLContextSpi contextSpi, Provider provider, String protocol)
contextSpi
- 委譲先provider
- プロバイダprotocol
- プロトコルpublic static SSLContext getDefault() throws NoSuchAlgorithmException
SSLContext.setDefault()
メソッドを使用してデフォルトコンテキストが設定されていた場合は、そのデフォルトコンテキストが返されます。そうでない場合は、このメソッドを最初に呼び出したときに SSLContext.getInstance("Default")
の呼び出しがトリガーされます。成功すると、そのオブジェクトがデフォルトの SSL コンテキストになり、返されます。
デフォルトコンテキストはすぐに使用可能となり、初期化する必要はありません。
NoSuchAlgorithmException
- SSLContext.getInstance()
の呼び出しが失敗した場合public static void setDefault(SSLContext context)
getDefault()
の呼び出しで返されます。デフォルトコンテキストはすぐに使用可能となり、初期化する必要はありません。context
- SSLContextNullPointerException
- コンテキストが null である場合SecurityException
- セキュリティーマネージャーが存在し、その checkPermission
メソッドが SSLPermission("setDefaultSSLContext")
が許可しない場合public static SSLContext getInstance(String protocol) throws NoSuchAlgorithmException
SSLContext
オブジェクトを返します。
このメソッドは、最優先の Provider から順に、登録済みのセキュリティー Provider のリストをトラバースします。指定されたアルゴリズムをサポートする最初のプロバイダの SSLContextSpi 実装をカプセル化する新しい SSLContext オブジェクトが返されます。
登録済みプロバイダのリストは、Security.getProviders()
メソッド経由で取得できます。
protocol
- 要求されたプロトコルの標準名。標準のプロトコル名については、Java 暗号化アーキテクチャー標準アルゴリズム名のドキュメントの SSLContext のセクションを参照。SSLContext
オブジェクト。NoSuchAlgorithmException
- 指定したプロトコルの TrustManagerFactorySpi の実装をサポートするプロバイダが存在しない場合。NullPointerException
- プロトコルが null である場合。Provider
public static SSLContext getInstance(String protocol, String provider) throws NoSuchAlgorithmException, NoSuchProviderException
SSLContext
オブジェクトを返します。
指定されたプロバイダの SSLContextSpi 実装をカプセル化する新しい SSLContext オブジェクトが返されます。指定したプロバイダは、セキュリティープロバイダリストに登録する必要があります。
登録済みプロバイダのリストは、Security.getProviders()
メソッド経由で取得できます。
protocol
- 要求されたプロトコルの標準名。標準のプロトコル名については、Java 暗号化アーキテクチャー標準アルゴリズム名のドキュメントの SSLContext のセクションを参照。provider
- プロバイダ名。SSLContext
オブジェクト。NoSuchAlgorithmException
- 指定されたプロバイダに、指定されたプロトコルの SSLContextSpi の実装がない場合。NoSuchProviderException
- 指定されたプロバイダがセキュリティープロバイダリストに登録されていない場合。IllegalArgumentException
- プロバイダ名が null または空の場合。NullPointerException
- プロトコルが null である場合。Provider
public static SSLContext getInstance(String protocol, Provider provider) throws NoSuchAlgorithmException
SSLContext
オブジェクトを返します。
指定された Provider オブジェクトの SSLContextSpi 実装をカプセル化する新しい SSLContext オブジェクトが返されます。指定された Provider オブジェクトは、プロバイダリストに登録する必要はありません。
protocol
- 要求されたプロトコルの標準名。標準のプロトコル名については、Java 暗号化アーキテクチャー標準アルゴリズム名のドキュメントの SSLContext のセクションを参照。provider
- プロバイダのインスタンス。SSLContext
オブジェクト。NoSuchAlgorithmException
- 指定された Provider オブジェクトに指定されたプロトコルの KeyManagerFactorySpi の実装がない場合。IllegalArgumentException
- プロバイダ名が null である場合。NullPointerException
- プロトコルが null である場合。Provider
public final String getProtocol()
SSLContext
オブジェクトのプロトコル名を返します。
これは、この SSLContext
オブジェクトを作成した getInstance
呼び出しのいずれかに指定された名前と同じです。
SSLContext
オブジェクトのプロトコル名。public final Provider getProvider()
SSLContext
オブジェクトのプロバイダを返します。SSLContext
オブジェクトのプロバイダpublic final void init(KeyManager[] km, TrustManager[] tm, SecureRandom random) throws KeyManagementException
鍵マネージャーや信頼マネージャーは、配列内に最初に配置されている実装型のインスタンスだけが使用されます。(たとえば、配列内の最初の javax.net.ssl.X509KeyManager だけが使用される)。
km
- 認証キーのソース、または nulltm
- ピア認証の信頼を判断するソース、または nullrandom
- このジェネレータの乱数発生の元、または nullKeyManagementException
- この操作が失敗した場合public final SSLSocketFactory getSocketFactory()
SocketFactory
オブジェクトを返します。SocketFactory
オブジェクトIllegalStateException
- SSLContextImpl に初期化が必要であり、init()
が呼び出されていない場合public final SSLServerSocketFactory getServerSocketFactory()
ServerSocketFactory
オブジェクトを返します。ServerSocketFactory
オブジェクトIllegalStateException
- SSLContextImpl に初期化が必要であり、init()
が呼び出されていない場合public final SSLEngine createSSLEngine()
SSLEngine
を作成します。
このファクトリメソッドを使用しているアプリケーションは、内部セッションの再利用に関するヒントを提供しません。ヒントが必要な場合は、代わりに createSSLEngine(String, int)
を使用するようにしてください。
Kerberos など、リモートホスト名の情報を必要とする暗号化方式群もあります。この場合は、このファクトリメソッドを使用しないでください。
SSLEngine
オブジェクトUnsupportedOperationException
- ベースとなるプロバイダがこの操作を実装していない場合。IllegalStateException
- SSLContextImpl に初期化が必要であり、init()
が呼び出されていない場合public final SSLEngine createSSLEngine(String peerHost, int peerPort)
SSLEngine
を作成します。
このファクトリメソッドを使用しているアプリケーションは、内部セッションの再利用に関するヒントを提供します。
Kerberos など、リモートホスト名の情報を必要とする暗号化方式群もあります。この場合は、peerHost を指定する必要があります。
peerHost
- ホストの権限のない名前peerPort
- 権限のないポートSSLEngine
オブジェクトUnsupportedOperationException
- ベースとなるプロバイダがこの操作を実装していない場合。IllegalStateException
- SSLContextImpl に初期化が必要であり、init()
が呼び出されていない場合public final SSLSessionContext getServerSessionContext()
コンテキストは、一部の環境では取得できません。その場合は null を返します。たとえば、ベースとなる SSL プロバイダが SSLSessionContext インタフェースを実装していない場合は、null が返されます。実装している場合は、null 以外のセッションコンテキストが返されます。
public final SSLSessionContext getClientSessionContext()
コンテキストは、一部の環境では取得できません。その場合は null を返します。たとえば、ベースとなる SSL プロバイダが SSLSessionContext インタフェースを実装していない場合は、null が返されます。実装している場合は、null 以外のセッションコンテキストが返されます。
public final SSLParameters getDefaultSSLParameters()
パラメータは、null 値以外に設定された暗号化方式群とプロトコル配列を常に持ちます。
UnsupportedOperationException
- デフォルトの SSL パラメータを取得できなかった場合。public final SSLParameters getSupportedSSLParameters()
パラメータは、null 値以外に設定された暗号化方式群とプロトコル配列を常に持ちます。
UnsupportedOperationException
- サポートされる SSL パラメータを取得できなかった場合。 バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.