[z/OS]

RACF 鍵リングのセットアップ

Java を使用した RACF 鍵ストア用の RACFInputStream の作成

SSL 認証プロセスの間、WebSphere® Application Server は、PERSONAL 証明書として接続する証明書を KeyEntry と見なします。 秘密鍵が使用可能なため、この証明書を Secure Sockets Layer (SSL) ハンドシェークでのエンド・ユーザー証明書として使用できます。

WebSphere Application Server は、CERTAUTH 証明書として接続する証明書を TrustedCertEntry と見なし、この証明書を認証局 (CA) として処理します。 鍵リングでは、PERSONAL として接続する証明書と、CERTAUTH として接続する CA 証明書が必要です。 SITE として接続する証明書は、このリリースではサポートされていません。

Java™ Secure Socket Extension (JSSE) クライアントおよびサーバーが、信用および鍵情報の両方に使用できる RACF® 鍵リングを以下のサンプル・コードで示します。
Certificate Label Name Cert Owner USAGE    DEFAULT
---------------------- ---------- -------- -------
PersonalEndUserCert    ID(USERID) PERSONAL YES
PersonalEndUserCACert  CERTAUTH   CERTAUTH NO
証明書パス・プロバイダーをご使用の Java 環境に追加して、WebSphere Application Server が Resource Access Control Facility (RACF) から読み取る証明書から証明書チェーンを構成する必要があります。 以下の行をご使用の java.security ファイル・プロバイダー・リストに追加します。
security.provider.X=com.ibm.security.cert.IBMCertPath

いずれかの RACF 証明書のロードに失敗した場合、鍵ストアはロードされません。 鍵リングから不要な証明書をすべて除去する必要があります。

RACFInputStream には、以下の 3 つのパラメーターが含まれています。
  • userid - 鍵リングを所有するユーザーの ID を含むストリング
  • ringid - RACF 鍵リングの名前を含むストリング
  • password - 鍵ストアのパスワードを含む文字配列
以下のコード例では、RACFInputStream スクリプトによるユーザー ID、リング ID、およびヌル・パスワードの直接の引き渡しを示します。
import com.ibm.crypto.provider.RACFInputStream;

String ksfname;
char[] storePass = null;
              
RACFInputStream riStream = new RACFInputStream(System.getProperty("user.name"),
                                               ksfname,
                                               storePass);
KeyStore racfKeyStore = KeyStore.getInstance("JCERACFKS");
racfKeyStore.load(riStream, storePass);
       
riStream.close();
上の例では、WebSphere Application Server が RACF に渡すユーザー ID を提供するためにシステム・プロパティー user.name が参照されています。この例は一般的ではありません。

RACFInputStream スクリプトの実行について詳しくは、 「z/OS Unique Considerations for the Java 2 SDK, Standard Edition, v 6.0」という資料を 参照してください。この z/OS® 資料へのリンクは、 このトピックの関連リンクのセクションにあります。

URLStreamHandler を使用した RACFInputStream へのアクセス

このリリースでは、URLStreamHandler オブジェクトを使用したユーザー定義クラスを介してデータにアクセスできます。 WebSphere Application Server では、システム・プロパティー java.protocol.handler.pkgs を使用してデータにアクセスするクラスを定義できます。Service Authorization Facility (SAF) RACF 鍵リングにあるデータにアクセスするには、関連したクラスとともに safkeyring URL を使用します。
URLStreamHandler クラスを使用して RACFInputStream を作成するには、以下の Java プロパティーを定義します。
-Djava.protocol.handler.pkgs
IBM® Java Cryptography Extension (IBMJCE) プロバイダーを使用して、 暗号化サポートを行っている場合は、このプロパティーを以下の値に設定してください。
-Djava.protocol.handler.pkgs=com.ibm.crypto.provider
IBMJCE4758 プロバイダーを使用して暗号化サポートを提供している場合は、プロパティーを以下の値に設定します。
-Djava.protocol.handler.pkgs=com.ibm.crypto.hdwrCCA.provider
URL を使用して、java.policy ファイルのストリーム・ハンドラーを指定できます。 jarsigner ユーティリティーは、-keystore パラメーターの URL も受け入れます。 RACF 鍵リングからの証明書が署名済み jar ファイルを検証する場合、以下のコード・サンプルに示すように、WebSphere Application Server が鍵リングを java.policy ファイルの鍵ストアへの入力ストリームとして使用する必要があることを指定できます。
keystore "safkeyring://myracfid/my_key_ring", " JCERACFKS";
In this example,
  • safkeyring は、サーバーが URLStreamHandler コードにアクセスして鍵リングからデータを読み取るのに使用する URL キーワードです。
  • myracfid は、鍵リングからデータを読み取る権限を持つ RACF ユーザー ID です。
  • my_key_ring は、データが読み取られる鍵リングの名前です。
  • JCERACFKS は、SAF (RACF) 鍵リング鍵ストア用に定義された鍵ストアのタイプです。
Java 仮想マシン (JVM) の開始時には、java.protocol.handler.pkgs プロパティーを前述の値のいずれかに設定して、WebSphere Application Server が適切な URLStreamHandler を呼び出せるようにする必要があります。 以下の例は、safkeyring URL を使用する jarsigner ユーティリティーを示します。
jarsigner -keystore safkeyring://myracfid/my_key_ring -signedjar
ibmjceproviders.jar ibmjceprovider.jar ibmprovider -storetype JCERACFKS 
RACF 外部セキュリティー・マネージャーでの情報の挿入および更新について詳しくは、以下の資料の RACDCERT コマンドを参照してください。
  • z/OS SecureWay Security Server RACF セキュリティー管理者のガイド - SA88-8613
  • z/OS SecureWay Security Server RACF コマンド言語 解説書 - SA88-8617

トピックのタイプを示すアイコン 参照トピック



タイム・スタンプ・アイコン 最終更新: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rsec_racfkeyringsetup
ファイル名:rsec_racfkeyringsetup.html