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
- 指定されたプロトコルのSSLContextSpi実装をサポートするプロバイダが存在しない場合。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オブジェクトに、指定されたプロトコルのSSLContextSpi実装がない場合。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, 2014, Oracle and/or its affiliates. All rights reserved.