WebSphere Application Server - Express, Version 6.1   
             オペレーティング・システム: AIX , HP-UX, Linux, Solaris, Windows, Windows Vista

             目次と検索結果のパーソナライズ化

例: JSSEHelper API を使用した、アウトバウンド SSL 構成のプログラマチックな指定

WebSphere Application Server には、アウトバウンド接続を行う前に、使用する Secure Sockets Layer (SSL) 構成をプログラマチックに指定する方法が用意されています。 com.ibm.websphere.ssl.JSSEHelper インターフェースには、SSL 構成を処理するためのアプリケーション・プログラミング・インターフェース (API) の完全セットが用意されています。

ランタイムが使用する SSL プロパティー・オブジェクトを スレッド上に設定する際に、JSSEHelper API を使用する場合は、 ご使用のアプリケーションで以下の手順を実行する必要があります。 これらの API の中には、Java 2 セキュリティー権限の要件を持つものもあります。 ご使用のアプリケーションで必要な権限については、JSSEHelper API の文書を参照してください。
  1. 以下のコマンドを入力して、JSSEHelper API のインスタンスを取得します。
    com.ibm.websphere.ssl.JSSEHelper jsseHelper 
    = com.ibm.websphere.ssl.JSSEHelper.getInstance();
  2. WebSphere Application Server 構成から SSL プロパティーを取得するか、アプリケーションに用意されている SSL プロパティーを使用します。 これらのプロパティーは、以下の複数の方法で取得できます。
    • 以下の例に示すような、同じ管理有効範囲内以上での別名の方向選択。
      try
      {
      	String alias = "NodeAServer1SSLSettings";  
       // As specified in the WebSphere SSL configuration
      	Properties sslProps = jsseHelper.getProperties(alias);
      }
      catch (com.ibm.websphere.ssl.SSLException e)
      {
      	e.printStackTrace();   // handle exception
      }
    • プログラマチック、方向、ダイナミック・アウトバウンド、または管理有効範囲の選択のための getProperties API の使用 (優先順位ルールおよび継承に基づく)。 SSL ランタイムは、getProperties API を使用して、特定のプロトコルに対して使用する SSL 構成を決定します。 この決定は、入力 (sslAlias および connectionInfo) およびプロパティーが呼び出された管理有効範囲の両方に基づいています。 getProperties API は、以下の順番で決定を行います。
      1. API が、スレッドでプロパティーが既に存在しているかどうかを検査します。
      2. API が、ENDPOINT_NAME、REMOTE_HOST、または REMOTE_PORT に一致するダイナミック・アウトバウンド構成を検査します。
      3. API が、オプションの sslAlias プロパティーが指定されているかどうかを検査します。 すべてのプロトコルを直接または中央管理対象として構成できます。 プロトコルが直接として構成されている場合、sslAlias パラメーターは null です。 プロトコルが中央管理対象として構成されている場合でも、sslAlias パラメーターは null です。
      4. 選択が行われなかった場合、API はそれが呼び出された管理有効範囲に基づいて、ダイナミック・アウトバウンド構成を選択します。 同じ有効範囲内でダイナミック・アウトバウンド構成が定義されていない場合は、階層を検索して見つけます。

      最後に、セルを有効範囲とする SSL 構成 (Network Deployment) またはノードを有効範囲とする SSL 構成 (基本アプリケーション・サーバー) を選択します。 com.ibm.websphere.ssl.SSLConfigChangeListener パラメーターは、getProperties API への呼び出しによって選択された SSL 構成が変更された場合に通知されます。 プロトコルは、再度 API を呼び出して、以下の例のように新しいプロパティーを取得することができます。

      try
      {
      	String sslAlias = null;  // The sslAlias is not specified directly at this time.
      	String host = "myhost.austin.ibm.com";  // the target host
      	String port = "443";  // the target port
      
      	HashMap connectionInfo = new HashMap();
      	connectionInfo.put(JSSEHelper.CONNECTION_INFO_DIRECTION, 
        JSSEHelper.DIRECTION_OUTBOUND);
      	connectionInfo.put(JSSEHelper.CONNECTION_INFO_REMOTE_HOST, host);
      	connectionInfo.put(JSSEHelper.CONNECTION_INFO_REMOTE_PORT, 
        Integer.toString(port));
      	connectionInfo.put(JSSEHelper.CONNECTION_INFO_ENDPOINT_NAME, 
        JSSEHelper.ENDPOINT_IIOP);
                 
      	java.util.Properties props = jsseHelper.getProperties(sslAlias, 
        connectionInfo, null);
      }
      catch (com.ibm.websphere.ssl.SSLException e)
      {
      	e.printStackTrace();   // handle exception
      }
    • 以下の例に示すように、独自の SSL プロパティーを作成し、それらをランタイムに引き渡します。
      try
      {
      	// This is the recommended "minimum" set of SSL properties. The trustStore can
      	// be the same as the keyStore.
      	Properties sslProps = new Properties();
      	sslProps.setProperty("com.ibm.ssl.trustStore", "some value");
      	sslProps.setProperty("com.ibm.ssl.trustStorePassword", "some value");
      	sslProps.setProperty("com.ibm.ssl.trustStoreType", "some value");
      	sslProps.setProperty("com.ibm.ssl.keyStore", "some value");
      	sslProps.setProperty("com.ibm.ssl.keyStorePassword", "some value");
      	sslProps.setProperty("com.ibm.ssl.keyStoreType", "some value");
      
      	jsseHelper.setSSLPropertiesOnThread(sslProps);
      }
      catch (com.ibm.websphere.ssl.SSLException e)
      {
      	e.printStackTrace();   // handle exception
      }
      
  3. JSSEHelper.setSSLPropertiesOnThread(props) API を使用してスレッド上で Properties オブジェクトを設定し、ランタイムがそれを取得して、同じ JSSEHelper.getProperties API を使用するようにします。 また、以下の例に示すように、jsseHelper.getSSLPropertiesOnThread() API を使用して設定された後で、スレッドからプロパティーを取得することもできます。
    try
    {
    	Properties sslProps = jsseHelper.getProperties(null, 
      connectionInfo, null); jsseHelper.setSSLPropertiesOnThread(sslProps);
    }
    catch (com.ibm.websphere.ssl.SSLException e)
    {
    	e.printStackTrace();   // handle exception
    }
  4. 接続が完了したら、以下の例に示すように、null 値を setPropertiesOnThread API に引き渡すことによって、スレッドから SSL プロパティーをクリアする必要があります。
    try
    {
    	jsseHelper.setSSLPropertiesOnThread(null);
    }
    catch (com.ibm.websphere.ssl.SSLException e)
    {
    	e.printStackTrace();   // handle exception
    }

アウトバウンド接続を行う前に、使用する Secure Sockets Layer (SSL) 構成をプログラマチックに指定する際は、接続状況に最も適合するアプローチを選択してください。




関連タスク
Secure Sockets Layer 構成と、アウトバウンド・プロトコルおよびリモート・セキュア・エンドポイントとの動的関連付け
参照トピック    

ご利用条件 | フィードバック

最終更新: Jan 21, 2008 6:25:35 PM EST
http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=/com.ibm.websphere.express.doc/info/exp/ae/rsec_ssloutconfiguseJSSE.html