ヘッダーをスキップ
Oracle® Fusion Middlewareアプリケーション・セキュリティ・ガイド
11g リリース1(11.1.1)
B56235-06
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

11 キーストア・サービスでのキーと証明書の管理

この章では、キーストア・サービスを使用してキーおよび証明書を管理する方法について説明します。

11.1 キーストア・サービスについて

OPSSキーストア・サービスでは、SSL、メッセージ・セキュリティ、暗号化および関連タスク用のキーおよび証明書を管理できます。キーストア・サービスは、キー、証明書およびその他のアーティファクトを含むキーストアを作成および管理するために使用します。

11.1.1 キーストア・サービスの構造

キーストア・サービスで作成される各キーストアは、アプリケーション・ストライプおよびキーストアによって一意に参照されます。

  • アプリケーション・ストライプ

    キーストア内に作成されたキーおよび証明書はアプリケーション・ストライプまたは製品内に存在し、ドメイン内の各ストライプには一意の名前が付けられます。

  • キーストア

    キーストア名はアプリケーション・ストライプ内で一意です。各製品またはアプリケーションは、そのアプリケーション・ストライプ内に複数のキーストアを作成できます。

したがって、(appstripe1, keystoreA)は一意であり、(appstripe1, keystoreB)とも、(appstripe2, keystoreA)とも区別されます。

同様に、各キーストアは、キーストア内で一意の別名によって参照される次のエントリを含むことができます。

  • 非対称鍵 - これには公開鍵と対応する秘密鍵が含まれ、通常はSSL通信に使用されます。公開鍵は証明書でラップされています。

  • 対称鍵 - これらのキーは通常、暗号化に使用されます。

  • 信頼できる証明書 - これらの証明書は通常、SSLピアとの信頼を構築するために使用されます。

11.1.2 キーストアのタイプ

キーストア・サービスでは、次の2つのタイプのキーストアを作成できます。

  • 権限によってのみ保護されるキーストア

    このタイプのキーストアは認可ポリシーによって保護され、ランタイム・コードによるアクセスはコード・ソース権限によって保護されます。バックエンドのキー・データは、ドメインごとに一意に生成された暗号化鍵を使用して暗号化されます。

  • 権限とパスワードの両方によって保護されるキーストア

    このタイプのキーストアは、認可ポリシーと、キーストアまたはキー・パスワードあるいはその両方によって保護されます。ランタイム・コードがこれらにアクセスするには、コード・ソース権限およびキーストアとキー・パスワード(キーストア・パスワードと異なる場合)へのアクセスの両方が必要になります。バックエンドのキー・データは、Password Based Encryption (PBE)によりキーストア/キー・パスワードを使用して暗号化されます。

アプリケーションには、権限によって保護されたキーストアを使用することをお薦めします。ただし、高度なセキュリティが必要であり、パスワードの管理をいとわない場合は、パスワードと権限の両方によって保護されるキーストアの使用を検討してください。


注意:

キーストア・サービスでは、キーストアまたはキーに対するパスワードは管理されません。製品またはアプリケーションで、適切なリポジトリ内でパスワードを管理する必要があります。たとえば、アプリケーションに対するパスワードを資格証明ストアに格納することを選択できます。


11.1.3 ドメイン・トラスト・ストア

各アプリケーションではSSL用に複数のキーストアを構成できますが、すべての製品およびアプリケーションに対して、信頼管理用のドメイン・レベルのトラスト・ストアが事前に構成されています。

このドメイン・トラスト・ストアには、一般的に知られているほとんどのサード・パーティ認証局(CA)の信頼できる証明書、およびキーストア・サービスに構成されているデモCAの信頼できる証明書が含まれます。各アプリケーションではSSLに対してこのドメイン・トラスト・ストアを指定でき、このタスク用に専用のトラスト・ストアを作成する必要はありません。

一方向SSL

一方向SSLでは、アプリケーションはドメイン・トラスト・ストアを使用するだけで、キーストアやトラスト・ストアを作成する必要はありません。

双方向SSL

双方向SSLについては、アプリケーションは自身のアイデンティティ証明書を含むキーストアのみを作成する必要があり、信頼にはドメイン・トラスト・ストアを使用します。


注意:

ドメイン・トラスト・ストアは、ドメイン内のすべての製品およびアプリケーションに対する共有ストアです。ドメイン内の他のすべての製品に影響する可能性があるため、信頼の追加または削除に関する決定は慎重に行う必要があります。

カスタム・トラスト・ストアの作成は、ドメイン・トラスト・ストアで製品の信頼管理要件を満たせない場合にのみ検討してください。


11.2 キーストア・サービス・コマンドについて

キーストア・サービスでは、キーストアの作成と管理、証明書のエクスポート、キー・ペアの生成などのキーストア操作に、専用のコマンド・セットを使用します。これらのコマンドの使用方法は似ていますが、他のOPSSコマンドとは異なります。

キーストア・サービス・コマンド・セットを使用するための開始点はgetOpssServiceです。これは次の操作を可能にするOPSSサービス・コマンド・オブジェクトを取得します。

一般的な構文は次のとおりです。

variable = getOpssService(name='service_name')

説明

例:

svc = getOpssService(name='KeyStoreService')

11.3 キーストア・サービス・コマンドのヘルプの表示

キーストア・サービス・コマンドに対するヘルプを表示するには、第11.2項に示したように、サービス・コマンド・オブジェクトの取得から始めます。このオブジェクトを、ヘルプ・コマンドおよび当該のコマンドとともに使用します。

すべてのキーストア・サービス・コマンドのリストを取得するには、次のように入力します。

svc.help()

特定のコマンドに対するヘルプを表示するには、次のように入力します。

svc.help('command-name')

たとえば次のように入力すると、exportKeyStoreコマンドに対するヘルプが表示されます。

svc.help('exportKeyStore') 

11.4 キーストア・サービス・コマンド・リファレンス

この項では、表11-1に示すキーストア・サービス・コマンドのリファレンスを提供します。

表11-1 キーストア・サービス・コマンド

コマンド 説明

changeKeyPassword

キーに対するパスワードを変更します。

changeKeyStorePassword

キーストアに対するパスワードを変更します。

createKeyStore

新しいキーストアを作成します。

deleteKeyStore

指定されたキーストアを削除します。

deleteKeyStoreEntry

キーストア・エントリを削除します。

exportKeyStore

キーストアをファイルにエクスポートします。

exportKeyStoreCertificate

証明書、信頼できる証明書または証明書チェーンをエクスポートします。

exportKeyStoreCertificateRequest

証明書リクエストを生成してエクスポートします。

generateKeyPair

キーストア内にキー・ペアを生成します。

generateSecretKey

キーストア内に対称鍵を生成します。

getKeyStoreCertificates

証明書または信頼できる証明書に関する情報を取得します。

getKeyStoreSecretKeyProperties

秘密鍵のプロパティを取得します。

importKeyStore

キーストアをファイルからインポートします。

importKeyStoreCertificate

証明書、信頼できる証明書または証明書チェーンをインポートします。

listExpiringCertificates

期限が切れる証明書をリストし、オプションで更新します。

listKeyStoreAliases

キーストア内の別名をリストします。

listKeyStores

ストライプ内のキーストアをリストします。


11.4.1 changeKeyPassword

説明

キーに対するパスワードを変更します。

構文

svc.changeKeyPassword(appStripe='stripe', name='keystore', password='password', alias='alias', currentkeypassword='currentkeypassword', newkeypassword='newkeypassword')

説明:

  • svc= getOpssService()へのコールによって取得したサービス・コマンド・オブジェクト。

  • appStripe= キーストアを含むストライプの名前。

  • name= キーストアの名前。

  • password= キーストアのパスワード。

  • alias= パスワードが変更されるキー・エントリの別名。

  • currentkeypassword= キーの現在のパスワード。

  • newkeypassword= キーの新しいパスワード。

svc.changeKeyPassword(appStripe='system', name='keystore', password='password', alias='orakey', currentkeypassword='currentkeypassword', newkeypassword='newkeypassword')

11.4.2 changeKeyStorePassword

説明

キーストアに対するパスワードを変更します。

構文

svc.changeKeyStorePassword(appStripe='stripe', name='keystore', currentpassword='currentpassword', newpassword='newpassword')

説明:

  • svc= getOpssService()へのコールによって取得したサービス・コマンド・オブジェクト。

  • appStripe= キーストアを含むストライプの名前。

  • name= パスワードが変更されるキーストアの名前。

  • currentpassword= キーストアの現在のパスワード。

  • newpassword= キーストアの新しいパスワード。

svc.changeKeyStorePassword(appStripe='system', name='keystore2', currentpassword='currentpassword', newpassword='newpassword')

11.4.3 createKeyStore

説明

新しいキーストアを作成します。

構文

svc.createKeyStore(appStripe='stripe', name='keystore', password='password',permission=true|false)

説明:

  • svc= getOpssService()へのコールによって取得したサービス・コマンド・オブジェクト。

  • appStripe= その中にキーストアが作成されるストライプの名前。

  • name= キーストアの名前。

  • password= キーストアのパスワード。

  • permission= キーストアが権限によってのみ保護される場合はtrue、権限とパスワードの両方によって保護される場合はfalse。

svc.createKeyStore(appStripe='system', name='keystore1', password='password',permission=true)

11.4.4 deleteKeyStore

説明

指定されたキーストアを削除します。

構文

svc.deleteKeyStore(appStripe='stripe', name='keystore', password='password')

説明:

  • svc= getOpssService()へのコールによって取得したサービス・コマンド・オブジェクト。

  • appStripe= その中のキーストアが削除されるストライプの名前。

  • name= 削除するキーストアの名前。

  • password= 削除するキーストアのパスワード。

svc.deleteKeyStore(appStripe='system', name='keystore1', password='password')

11.4.5 deleteKeyStoreEntry

説明

キーストア・エントリを削除します。

構文

svc.deleteKeyStoreEntry(appStripe='stripe', name='keystore', password='password', alias='alias', keypassword='keypassword')

説明:

  • svc= getOpssService()へのコールによって取得したサービス・コマンド・オブジェクト。

  • appStripe= キーストアを含むストライプの名前。

  • name= キーストアの名前。

  • password= キーストアのパスワード。

  • alias= 削除するエントリの別名。

  • keypassword= 削除するエントリのキー・パスワード。

svc.deleteKeyStoreEntry(appStripe='system', name='keystore2', password='password', alias='orakey', keypassword='keypassword')

11.4.6 exportKeyStore

説明

キーストアをファイルにエクスポートします。

構文

svc.exportKeyStore(appStripe='stripe', name='keystore', password='password', aliases='comma-separated-aliases', keypasswords='comma-separated-keypasswords', type='keystore-type', filepath='absolute_file_path')

説明:

  • svc= getOpssService()へのコールによって取得したサービス・コマンド・オブジェクト。

  • appStripe= キーストアを含むストライプの名前。

  • name= キーストアの名前。

  • password= キーストアのパスワード。

  • aliases= エクスポートする別名のカンマ区切りリスト。

  • keypasswords= 別名に対応するキー・パスワードのカンマ区切りリスト。

  • type= エクスポートされるキーストアのタイプ。有効な値は、JKSまたはJCEKSです。

  • filepath= キーストアのエクスポート先のファイルの絶対パス。

svc.exportKeyStore(appStripe='system', name='keystore2', password='password',aliases='orakey,seckey', keypasswords='keypassword1,keypassword2', type='JKS',filepath='/tmp/file.jks')

11.4.7 exportKeyStoreCertificate

説明

証明書、信頼できる証明書または証明書チェーンをエクスポートします。

構文

svc.exportKeyStoreCertificate(appStripe='stripe', name='keystore', password='password', alias='alias', keypassword='keypassword', type='entrytype',filepath='absolute_file_path')

説明:

  • svc= getOpssService()へのコールによって取得したサービス・コマンド・オブジェクト。

  • appStripe= キーストアを含むストライプの名前。

  • name= キーストアの名前。

  • password= キーストアのパスワード。

  • alias= エクスポートするエントリの別名。

  • keypassword= キーのパスワード。

  • type= エクスポートするキーストア・エントリのタイプ。有効な値は、Certificate、TrustedCertificateまたはCertificateChainです。

  • filepath= 証明書、信頼できる証明書または証明書チェーンのエクスポート先のファイルの絶対パス。

svc.exportKeyStoreCertificate(appStripe='system', name='keystore2', password='password', alias='orakey', keypassword='keypassword', type='Certificate', filepath='/tmp/cert.txt')

11.4.8 exportKeyStoreCertificateRequest

説明

証明書リクエストを生成してエクスポートします。

構文

svc.exportKeyStoreCertificateRequest(appStripe='stripe', name='keystore', password='password', alias='alias', keypassword='keypassword', filepath='absolute_file_path')

説明:

  • svc= getOpssService()へのコールによって取得したサービス・コマンド・オブジェクト。

  • appStripe= キーストアを含むストライプの名前。

  • name= キーストアの名前。

  • password= キーストアのパスワード。

  • alias= 証明書リクエストの生成元のキー・ペアの別名。

  • keypassword= キー・ペアのパスワード。

  • filepath= 証明書リクエストのエクスポート先のファイルの絶対パス。

svc.exportKeyStoreCertificateRequest(appStripe='system', name='keystore2', password='password', alias='orakey', keypassword='keypassword', filepath='/tmp/certreq.txt')

11.4.9 generateKeyPair

説明

キーストア内にキー・ペアを生成し、それをデモCAによって署名された証明書でラップします。

構文

svc.generateKeyPair(appStripe='stripe', name='keystore', password='password', dn='distinguishedname', keysize='keysize', alias='alias', keypassword='keypassword')

説明:

  • svc= getOpssService()へのコールによって取得したサービス・コマンド・オブジェクト。

  • appStripe= キーストアを含むストライプの名前。

  • name= キー・ペアが生成されるキーストアの名前。

  • password= キーストアのパスワード。

  • dn= キー・ペアをラップする証明書の識別名。

  • keysize= キーのサイズ。

  • alias= キー・ペア・エントリの別名。

  • keypassword= キーのパスワード。

svc.generateKeyPair(appStripe='system', name='keystore2', password='password', dn='cn=www.oracle.com', keysize='1024', alias='orakey', keypassword='keypassword')

11.4.10 generateSecretKey

説明

キーストア内に対称鍵を生成します。

構文

svc.generateSecretKey(appStripe='stripe', name='keystore', password='password', algorithm='algorithm', keysize='keysize', alias='alias', keypassword='keypassword')

説明:

  • svc= getOpssService()へのコールによって取得したサービス・コマンド・オブジェクト。

  • appStripe= キーストアを含むストライプの名前。

  • name= 対称鍵が生成されるキーストアの名前。

  • password= キーストアのパスワード。

  • algorithm= 対称鍵アルゴリズム。

  • keysize= キーのサイズ。

  • alias= キー・エントリの別名。

  • keypassword= キーのパスワード。

svc.generateSecretKey(appStripe='system', name='keystore2', password='password', algorithm='AES', keysize='128', alias='seckey', keypassword='keypassword')

11.4.11 getKeyStoreCertificates

説明

証明書または信頼できる証明書に関する情報を取得します。

構文

svc.getKeyStoreCertificates(appStripe='stripe', name='keystore', password='password', alias='alias', keypassword='keypassword')

説明:

  • svc= getOpssService()へのコールによって取得したサービス・コマンド・オブジェクト。

  • appStripe= キーストアを含むストライプの名前。

    keypassword= キーのパスワード。

  • name= キーストアの名前。

  • password= キーストアのパスワード。

  • alias= 表示する証明書、信頼できる証明書または証明書チェーンの別名。

svc.getKeyStoreCertificates(appStripe='system', name='keystore3', password='password', alias='orakey', keypassword='keypassword')

11.4.12 getKeyStoreSecretKeyProperties

説明

アルゴリズムなどの秘密鍵のプロパティを取得します。

構文

svc.getKeyStoreSecretKeyProperties(appStripe='stripe', name='keystore', password='password', alias='alias', keypassword='keypassword')

説明:

  • svc= getOpssService()へのコールによって取得したサービス・コマンド・オブジェクト。

  • appStripe= キーストアを含むストライプの名前。

  • name= キーストアの名前。

  • password= キーストアのパスワード。

  • alias= プロパティを表示する秘密鍵の別名。

  • keypassword= 秘密鍵のパスワード。

svc.getKeyStoreSecretKeyProperties(appStripe='system', name='keystore3', password='password', alias='seckey', keypassword='keypassword')

11.4.13 importKeyStore

説明

キーストアをファイルからインポートします。

構文

svc.importKeyStore(appStripe='stripe', name='keystore', password='password', aliases='comma-separated-aliases', keypasswords='comma-separated-keypasswords', type='keystore-type', permission=true|false, filepath='absolute_file_path')

説明:

  • svc= getOpssService()へのコールによって取得したサービス・コマンド・オブジェクト。

  • appStripe= キーストアを含むストライプの名前。

  • name= キーストアの名前。

  • password= キーストアのパスワード。

  • aliases= ファイルからインポートするエントリのカンマ区切りの別名。

  • keypasswords= ファイル内のキーのカンマ区切りのパスワード。

  • type= インポートされるキーストアのタイプ。有効な値は、JKSまたはJCEKSです。

  • filepath= インポートするキーストア・ファイルの絶対パス。

svc.importKeyStore(appStripe='system', name='keystore2', password='password',aliases='orakey,seckey', keypasswords='keypassword1, keypassword2', type='JKS', permission=true, filepath='/tmp/file.jks')

11.4.14 importKeyStoreCertificate

説明

証明書、信頼できる証明書または証明書チェーンをインポートします。

構文

svc.importKeyStoreCertificate(appStripe='stripe', name='keystore', password='password', alias='alias', keypassword='keypassword', type='entrytype',filepath='absolute_file_path')

説明:

  • svc= getOpssService()へのコールによって取得したサービス・コマンド・オブジェクト。

  • appStripe= キーストアを含むストライプの名前。

  • name= キーストアの名前。

  • password= キーストアのパスワード。

  • alias= インポートするエントリの別名。

  • keypassword= 新たにインポートするエントリのキー・パスワード。

  • type= インポートするキーストア・エントリのタイプ。有効な値は、Certificate、TrustedCertificateまたはCertificateChainです。

  • filepath= 証明書、信頼できる証明書または証明書チェーンのインポート元のファイルの絶対パス。

svc.importKeyStoreCertificate(appStripe='system', name='keystore2', password='password', alias='orakey', keypassword='keypassword', type='Certificate', filepath='/tmp/cert.txt')

11.4.15 listExpiringCertificates

説明

期限が切れる証明書をリストし、オプションで更新します。

構文

svc.listExpiringCertificates(days='days', autorenew=true|false)

説明:

  • svc= getOpssService()へのコールによって取得したサービス・コマンド・オブジェクト。

  • days= 期限までの日数がこの日数以下の証明書のみをリストします。

  • autorenew= 期限が切れる証明書を自動的に更新する場合はtrue、表示するだけの場合はfalse

svc.listExpiringCertificates(days='365', autorenew=true)

11.4.16 listKeyStoreAliases

説明

キーストア内の特定のエントリ・タイプに対する別名をリストします。

構文

svc.listKeyStoreAliases(appStripe='stripe', name='keystore', password='password', type='entrytype')

説明:

  • svc= getOpssService()へのコールによって取得したサービス・コマンド・オブジェクト。

  • appStripe= キーストアを含むストライプの名前。

  • name= キーストアの名前。

  • password= キーストアのパスワード。

  • type= 別名をリストするエントリのタイプ。有効な値は、Certificate、TrustedCertificate、SecretKeyまたは*です。

svc.listKeyStoreAliases(appStripe='system', name='keystore2', password='password', type='Certificate')

svc.listKeyStoreAliases(appStripe='system', name='keystore2', password='password', type='TrustedCertificate')

svc.listKeyStoreAliases(appStripe='system', name='keystore2', password='password', type='SecretKey')

svc.listKeyStoreAliases(appStripe='system', name='keystore2', password='password', type='*')

11.4.17 listKeyStores

説明

ストライプ内のすべてのキーストアをリストします。

構文

svc.listKeyStores(appStripe='stripe')

説明:

  • svc= getOpssService()へのコールによって取得したサービス・コマンド・オブジェクト。

  • appStripe= キーストアをリストするストライプの名前。

svc.listKeyStores(appStripe='system')

svc.listKeyStores(appStripe='*')