public class SSLParameters extends Object
SSLParametersは、このクラスのコンストラクタを使用して作成することができます。オブジェクトは、SSLSocket
、SSLServerSocket
、およびSSLEngine
のgetSSLParameters()
メソッド、またはSSLContext
のgetDefaultSSLParameters()
メソッドとgetSupportedSSLParameters()
メソッドを使用して取得することもできます。
SSLParametersは、SSLSocket.setSSLParameters()
、SSLServerSocket.setSSLParameters()
、およびSSLEngine.setSSLParameters()
メソッドを使用して接続に適用できます。
SSLSocket
, SSLEngine
, SSLContext
コンストラクタと説明 |
---|
SSLParameters()
SSLParametersを構築します。
|
SSLParameters(String[] cipherSuites)
指定された暗号化方式群の配列からSSLParametersを構築します。
|
SSLParameters(String[] cipherSuites, String[] protocols)
指定された暗号化方式群とプロトコルの配列からSSLParametersを構築します。
|
修飾子と型 | メソッドと説明 |
---|---|
AlgorithmConstraints |
getAlgorithmConstraints()
暗号化アルゴリズムの制約を返します。
|
String[] |
getCipherSuites()
暗号化方式群の配列のコピーを返します。設定されていない場合はnullを返します。
|
String |
getEndpointIdentificationAlgorithm()
エンド・ポイント識別アルゴリズムを取得します。
|
boolean |
getNeedClientAuth()
クライアント認証を必須とするかどうかを返します。
|
String[] |
getProtocols()
プロトコルの配列のコピーを返します。設定されていない場合はnullを返します。
|
List<SNIServerName> |
getServerNames()
Server Name Indication (SNI)パラメータのすべての
SNIServerName を含むList (何も設定されていない場合はnull)を返します。 |
Collection<SNIMatcher> |
getSNIMatchers()
Server Name Indication (SNI)パラメータのすべての
SNIMatcher を含むCollection (何も設定されていない場合はnull)を返します。 |
boolean |
getUseCipherSuitesOrder()
暗号化方式群のローカル設定を適用する必要があるかどうかを返します。
|
boolean |
getWantClientAuth()
クライアント認証を要求するかどうかを返します。
|
void |
setAlgorithmConstraints(AlgorithmConstraints constraints)
実行環境によって構成された任意の制約に加えて使用される、暗号化アルゴリズムの制約を設定します。
|
void |
setCipherSuites(String[] cipherSuites)
暗号化方式群の配列を設定します。
|
void |
setEndpointIdentificationAlgorithm(String algorithm)
エンド・ポイント識別アルゴリズムを設定します。
|
void |
setNeedClientAuth(boolean needClientAuth)
クライアント認証を必須とするかどうかを設定します。
|
void |
setProtocols(String[] protocols)
プロトコルの配列を設定します。
|
void |
setServerNames(List<SNIServerName> serverNames)
Server Name Indication (SNI)パラメータの必要な
SNIServerName を設定します。 |
void |
setSNIMatchers(Collection<SNIMatcher> matchers)
Server Name Indication (SNI)パラメータの
SNIMatcher を設定します。 |
void |
setUseCipherSuitesOrder(boolean honorOrder)
暗号化方式群のローカル設定を適用する必要があるかどうかを設定します。
|
void |
setWantClientAuth(boolean wantClientAuth)
クライアント認証を要求するかどうかを設定します。
|
public SSLParameters()
暗号化方式群、プロトコル、暗号化アルゴリズム制約、エンドポイント識別アルゴリズム、およびサーバー名とサーバー名マッチャの値はnull
に設定されます。useCipherSuitesOrder、wantClientAuth、およびneedClientAuthはfalse
に設定されます。
public SSLParameters(String[] cipherSuites)
このコンストラクタの呼出しは、引数なしのコンストラクタに続いてsetCipherSuites(cipherSuites);
を呼び出すことと同じです。
cipherSuites
- 暗号化方式群の配列(nullも可)public String[] getCipherSuites()
public void setCipherSuites(String[] cipherSuites)
cipherSuites
- 暗号化方式群の配列(nullも可)public String[] getProtocols()
public void setProtocols(String[] protocols)
protocols
- プロトコルの配列(nullも可)public boolean getWantClientAuth()
public void setWantClientAuth(boolean wantClientAuth)
needClientAuth
フラグがクリアされます。wantClientAuth
- クライアント認証が要求されるかどうかpublic boolean getNeedClientAuth()
public void setNeedClientAuth(boolean needClientAuth)
wantClientAuth
フラグがクリアされます。needClientAuth
- クライアント認証が必要かどうかpublic AlgorithmConstraints getAlgorithmConstraints()
setAlgorithmConstraints(AlgorithmConstraints)
public void setAlgorithmConstraints(AlgorithmConstraints constraints)
constraints
パラメータがnullではない場合は、SSL/TLSハンドシェークで使用されるすべての暗号化アルゴリズム、鍵およびアルゴリズム・パラメータが制約によって許容される必要があります。
constraints
- アルゴリズムの制約(またはnull)public String getEndpointIdentificationAlgorithm()
X509ExtendedTrustManager
, setEndpointIdentificationAlgorithm(String)
public void setEndpointIdentificationAlgorithm(String algorithm)
algorithm
パラメータがnullまたは空ではない場合は、SSL/TLSハンドシェークの際に、エンド・ポイント識別/検証プロシージャを実行する必要があります。これを行うのは、man-in-the-middle攻撃を回避するためです。
algorithm
- エンド・ポイント識別アルゴリズムの標準名を表す文字列(またはnull)。標準のアルゴリズム名については、「Java暗号化アーキテクチャAPIの仕様およびリファレンス」の「付録A」を参照してください。X509ExtendedTrustManager
public final void setServerNames(List<SNIServerName> serverNames)
SNIServerName
を設定します。
このメソッドが役立つのは、クライアント・モードで動作するSSLSocket
またはSSLEngine
の場合のみです。
以後の変更から保護するために、serverNames
リストのクローンが作成されます。
serverNames
- 必要なSNIServerName
のリスト(またはnull)NullPointerException
- serverNames
にnull
要素が含まれている場合IllegalArgumentException
- serverNames
に同じ名前タイプの名前が複数個含まれている場合SNIServerName
, getServerNames()
public final List<SNIServerName> getServerNames()
SNIServerName
を含むList
(何も設定されていない場合はnull)を返します。
このメソッドが役立つのは、クライアント・モードで動作するSSLSocket
またはSSLEngine
の場合のみです。
SSL/TLS接続の場合、ベースとなるSSL/TLSプロバイダは特定のサーバー名タイプのデフォルト値を指定できます。クライアント・モードでは、サポート対象のサーバー名タイプでサーバーを特定可能な場合には常に、プロバイダはデフォルトでサーバー名表示を含めるようにすることをお薦めします。
SSLSocket
/SSLEngine
の作成時にプロバイダがデフォルトのサーバー名表示を初期化することをお薦めします。次の例では、サーバー名は、ホスト名「www.example.com」とタイプStandardConstants.SNI_HOST_NAME
で初期化されたSNIHostName
のインスタンスとして表現できます。
Socket socket = sslSocketFactory.createSocket("www.example.com", 443);または
SSLEngine engine = sslContext.createSSLEngine("www.example.com", 443);
SNIServerName
の不変なリストList
, setServerNames(List)
public final void setSNIMatchers(Collection<SNIMatcher> matchers)
SNIMatcher
を設定します。
このメソッドが役立つのは、サーバー・モードで動作するSSLSocket
またはSSLEngine
の場合のみです。
以後の変更から保護するために、matchers
コレクションのクローンが作成されます。
matchers
- SNIMatcher
のコレクション(またはnull)NullPointerException
- matchers
にnull
要素が含まれている場合IllegalArgumentException
- matchers
に同じ名前タイプの名前が複数個含まれている場合Collection
, SNIMatcher
, getSNIMatchers()
public final Collection<SNIMatcher> getSNIMatchers()
SNIMatcher
を含むCollection
(何も設定されていない場合はnull)を返します。
このメソッドが役立つのは、サーバー・モードで動作するSSLSocket
またはSSLEngine
の場合のみです。
相互運用性を高めるため、プロバイダは一般にデフォルトのマッチャを定義しませんが、これは、サーバーがデフォルトでSNI拡張を無視してハンドシェークを続行するようにするためです。
SNIMatcher
の不変なコレクションSNIMatcher
, setSNIMatchers(Collection)
public final void setUseCipherSuitesOrder(boolean honorOrder)
honorOrder
- SSL/TLSハンドシェーク時に#getCipherSuites
で暗号化方式群のローカル順序を適用する必要があるかどうか。getUseCipherSuitesOrder()
public final boolean getUseCipherSuitesOrder()
#getCipherSuites
で暗号化方式群のローカル順序を適用する必要があるかどうか。setUseCipherSuitesOrder(boolean)
バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.