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」を参照してください。X509ExtendedTrustManagerpublic 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.