A.14 Oracle Directory Services ManagerのJavaキーストアの管理

この付録では、Oracle Directory Services Manager (ODSM)のJavaキーストア(JKS)を管理する方法について説明し、JKSパスワードの取得、odsm.cer JKSの内容のリスト、および期限が切れた証明書の削除について説明します。内容は次のとおりです。

A.14.1 ODSMのJavaキーストアの管理の概要

Oracle Directory Services Manager(ODSM)は、Javaキー・ストア(JKS)にその秘密キー、証明書および信頼できる証明書を格納します。

管理者は、ODSMのJKSの管理を担当します。実行する必要がある重要なタスクの1つは、期限が切れたODSMの証明書をJKSから削除することです。この付録では、次のことについて説明します。

ODSMは、初めて呼び出されると、ランダム・パスワードを生成し、そのパスワードをJKSに割り当てます。JKSファイルは、odsm.cerという名前を持ちます。このファイルは、次の書式の名前のディレクトリに置かれます。

$DOMAIN_HOME/config/fmwconfig/servers/AdminServer/applications/odsm/conf

ODSMは、Oracleによるセキュアな格納フレームワークである資格証明ストア・フレームワーク(CSF)内のJDKにこのパスワードを格納します。WebLogicサーバー管理者は、CSFに格納されているJDKパスワードを取得できます。

ODSMは、自身の自己署名証明書の生成とJKSへの格納も行います。自己署名証明書は、生成日から15000日間有効です。自己署名証明書は、テスト目的のみに使用されます。本番環境では、自己署名証明書を、認証局(CA)によって署名された証明書に置き換えることをお薦めします。

JKSを管理するためのWebベースのツールはありません。ODSMのJKSを管理するには、OracleのJREまたはJDKに用意されているコマンド行ツールであるkeytoolを使用します。

関連項目:

A.14.2 ODSMのJavaキーストア・パスワードの取得

Oracle Directory Services ManagerのJavaキー・ストアを管理するには、まずOracle Directory Services ManagerのJavaキー・ストア・パスワードを取得する必要があります。

このパスワードを取得するには次の2つの方法があります。

A.14.2.1 Enterprise Manager Fusion Middleware Controlを使用したパスワードの取得

Enterprise Managerを使用して、Oracle Directory Services ManagerのJavaキー・ストア・パスワードを取得します。

次のステップを実行します。

  1. weblogic administratorとしてEnterprise Managerに接続します。
  2. Enterprise Managerのナビゲーション・パネルの左側で、「WebLogicドメイン」を拡張し、Oracle Directory Services Managerがデプロイされているドメインを選択します。
  3. Enterprise Managerのナビゲーション・パネルの右側で、「WebLogicドメイン」メニューをクリックし、「システムMBeanブラウザ」を選択します。
  4. システムMBeanブラウザで、「アプリケーション定義のMBean」「com.oracle.jps」「ドメイン」 : 「NameOfTheDomainWhereODSMisDeployed」「JPSCredentialStore」JPSCredentialストアを開きます。
  5. 詳細ペインに表示される「操作」タブをクリックします。
  6. 次の図に示されているように、getPortableCredential操作をクリックします。

    図A-4 getPortableCredential操作

    図A-4の説明が続きます
    「図A-4 getPortableCredential操作」の説明
  7. 次のページが表示されたら、getPortableCredentialメソッドのパラメータを入力する必要があります。
    • 「P1」で「ODSMMap」と入力します。

    • 「P2」で、「ODSMKey.Wallet」と入力します。

  8. 「起動」ボタンをクリックします。

    次の図に示されるように、「戻り値」表は「パラメータ」表の下に表示されます。Oracle Directory Services ManagerのJavaキー・ストア・パスワードは、「パスワード」フィールドに表示されます。

    図A-5 getPortableCredential操作

    図A-5の説明が続きます
    「図A-5 getPortableCredential操作」の説明

A.14.2.2 Pythonスクリプトを使用したパスワードの取得

Enterprise Managerがない場合は、Pythonスクリプトを使用してOracle Directory Services ManagerのJavaキー・ストア・パスワードを取得できます。

パスワードを取得するには、次のステップを実行します。

  1. 次の内容で.pyファイル(たとえば、odsm.py)を作成します。
    import sys,getopt
    from oracle.security.jps.mas.mgmt.jmx.credstore import PortableCredential
    connect(sys.argv[1], sys.argv[2], sys.argv[3])
    domainRuntime()
    params= ["ODSMMap", "ODSMKey.Wallet"]
    sign=["java.lang.String", "java.lang.String"]
    on=ObjectName("com.oracle.jps:type=JpsCredentialStore")
    cred = None
    cred = mbs.invoke(on, "getPortableCredential", params, sign)
    if cred != None:
       credObject = PortableCredential.from(cred)
       print credObject
       print "ODSM Java Key Store Password: " + String.valueOf(credObject.getPassword())
    
  2. 次のコマンドを実行します。
    $MW_HOME/oracle_common/common/bin/wlst.sh odsm.py <wls_admin_user> 
    <wls_admin_password> t3://<adminserver_host>:<adminserver_port>
    

    次に例を示します。

    $MW_HOME/oracle_common/common/bin/wlst.sh odsm.py weblogic password 
    t3://myadminserver:7001
    

    このスクリプトを実行すると、ルートとしてDomainMBeanを指定する、読取り専用のdomainRuntimeツリーに出力先が変更されます。

    ノート:

    ヘルプを表示するには、コマンド行でhelp(domainRuntime)と入力します。

    [Name : ODSM, Description : ODSM Key store password, expiry Date : null]
    ODSM Java Key Store Password: XXXXXXXXXX
    

関連項目:

詳細は、次の公開資料を参照してください。

A.14.3 odsm.cer Javaキーストアの内容のリスト

JKSパスワードを取得したら、keytoolを使用してJKSを管理できます。

odsm.cerの内容を表示するには、次のようにkeytoolコマンドを使用します。

cd directory_where_odsm.cer_resides
JAVA_HOME/bin/keytool -list -keystore odsm.cer \
   -storepass password_obtained_from_CSF 

次に例を示します。

$ cd DOMAIN_HOME/config/fmwconfig/servers/AdminServer/applications/odsm/conf
$ JAVA_HOME/bin/keytool -list -keystore odsm.cer -storepass "&M)S86)/RB" -v


Keystore type: JKS
Keystore provider: SUN

Your keystore contains 2 entries

Alias name: serverselfsigned
Creation date: Dec 26, 2008
Entry type: PrivateKeyEntry
Certificate chain length: 1
Certificate[1]:
Owner: CN=OVD, OU=Development, O=Oracle, L=Redwood Shores, ST=California, C=US
Issuer: CN=OVD, OU=Development, O=Oracle, L=Redwood Shores, ST=California, C=US
Serial number: 495586b6
Valid from: Fri Dec 26 17:36:54 PST 2008 until: Wed Jun 24 18:36:54 PDT 2009
Certificate fingerprints:
         MD5:  6C:11:16:F3:88:8D:18:67:35:1E:16:5B:3E:03:8A:93
         SHA1: F4:91:39:AE:8B:AC:46:B8:5D:CB:D9:A4:65:BE:D2:75:08:17:DF:D0
         Signature algorithm name: SHA1withRSA         Version: 3


*******************************************
*******************************************

Alias name: cn=rootca, o=oracle, c=us (0)
Creation date: Dec 31, 2008
Entry type: trustedCertEntry

Owner: CN=RootCA, O=Oracle, C=US
Issuer: CN=RootCA, O=Oracle, C=US
Serial number: 0
Valid from: Tue Dec 30 02:33:11 PST 2008 until: Mon Jan 24 02:33:11 PST 2050
Certificate fingerprints:
         MD5:  72:31:7B:24:C9:72:E3:90:37:38:68:40:79:D1:0B:4B
         SHA1: D2:17:84:1E:19:23:02:05:61:42:A9:F4:16:C8:93:84:E8:20:02:FF
         Signature algorithm name: MD5withRSA
         Version: 1


*******************************************
*******************************************

A.14.4 期限が切れた証明書の削除

証明書の期限が切れたときに、その証明書をJDKから自動的に削除するメカニズムはありません。

管理者は証明書の期限が切れるタイミングを判別し、それを削除する必要があります。

この項では、次の項目について説明します。

A.14.4.1 証明書の有効期限の確認

この項は、証明書の有効期限を確認するのに役立ちます。

「odsm.cer Javaキーストアの内容のリスト」で説明されているように、keytoolを使用してodsm.cerのすべての証明書をリストします。このリストには、各証明書の有効な日付が含まれています。たとえば、次の証明書はSat Oct 31 09:41:23 PDT 2008まで有効です。

Alias name: cn=ovd, ou=development, o=MyCompany, l=redwood shores, 
st=california, c=us (1241455283) 
Creation date: May 5, 2008 
Entry type: trustedCertEntry
 
Owner: CN=OVD, OU=Development, O=MyCompany, L=Redwood Shores, ST=California, C=US 
Issuer: CN=OVD, OU=Development, O=Oracle, L=Redwood Shores, ST=California, C=US 
Serial number: 49ff1ab3 
Valid from: Mon May 04 09:41:23 PDT 2008 until: Sat Oct 31 09:41:23 PDT 2008 
Certificate fingerprints: 
MD5: 93:0E:41:5E:95:88:71:BD:8A:49:ED:A9:29:3B:0A:1E 
SHA1: 84:C6:75:60:D9:BE:7B:CA:D6:8B:B5:4B:97:E4:20:39:44:82:FE:93 
Signature algorithm name: SHA1withRSA 
Version: 3 

証明書の有効期間が終了したら、次の項で説明しているように、keytoolを使用して削除します。

A.14.4.2 証明書の削除

odsm.cer内の証明書を削除するには、keytoolを使用します。

次のコマンドを実行します。

cd directory_where_odsm.cer_is_present
JAVA_HOME/bin/keytool -delete -keystore odsm.cer 
-storepass password_obtained_from_CSF -alias "cn=rootca, o=oracle, c=us (0)"

$> JAVA_HOME/bin/keytool -delete -keystore odsm.cer \
   -storepass  "&M)S86)/RB"  -alias "cn=rootca, o=oracle, c=us (0)"
[Storing odsm.cer]