Oracle Application Server 管理者ガイド 10gリリース3(10.1.3.2.0) E05047-01 |
|
この章では、Oracle Application Serverのリソースに対するセキュリティ資格証明を取得および管理する方法を説明します。セキュリティ管理者は、Oracle Wallet Managerおよびそのコマンドライン・ユーティリティorapki
を使用して、Oracleクライアントおよびサーバー上の公開鍵インフラストラクチャ(PKI)の管理を行います。これらのツールで作成した資格証明は、Oracle Database、Oracle Application ServerおよびOracle Identity Managementインフラストラクチャによる読込みが可能です。
この章の項目は次のとおりです。
この項では、PKI証明書の管理に使用するグラフィカル・ユーザー・インタフェース・ツールであるOracle Wallet Managerについて説明します。この項の項目は次のとおりです。
Oracle Wallet Managerは、Oracle Wallet内のセキュリティ資格証明を管理および編集するためのアプリケーションです。Walletはパスワードで保護されたコンテナで、強固な認証のためにSSLで必要な秘密鍵、証明書、信頼できる証明書など、認証および署名用の資格証明を格納します。Oracle Wallet Managerを使用して実行できるタスクは次のとおりです。
Oracle Wallet Managerの機能について、次の各項目で説明します。
Oracle Walletは、パスワードで保護されています。Oracle Wallet Managerには、強化されたWalletパスワード管理モジュールが含まれており、次のパスワード管理ポリシー・ガイドラインが強制されます。
Oracle Wallet Managerには、X.509証明書に関連付けられる秘密鍵が格納され、Triple-DES暗号化が使用されます。
Oracle Wallet Managerでは、Microsoft Windowsシステム・レジストリのユーザー・プロファイル領域またはWindowsファイル管理システムに複数のOracle Walletを格納できます。Walletをレジストリ内に保存することの利点は次のとおりです。
Oracle Wallet Managerには、リリース8.1.7のデータベースとの間の下位互換性があります。
Oracle Wallet Managerでは、次のサード・パーティ製アプリケーションからのPKI資格証明を使用できます。
Microsoft Internet ExplorerおよびNetscapeからのブラウザのPKI資格証明ストアには、ユーザー証明書が格納されています。この証明書には、サブジェクトの公開鍵とID、および関連する信頼できる証明書が含まれています。このような資格証明を使用するには、サード・パーティ環境から資格証明をエクスポートしてPKCS #12形式で保存する必要があります。その後、この資格証明をOracle Wallet Managerで開くと、SSLで使用できるようになります。
Oracle Wallet Managerでは、LDAP準拠ディレクトリとの間でWalletのアップロードや取得ができます。集中化されたLDAP準拠ディレクトリにWalletを格納すると、ユーザーは複数の場所やデバイスからWalletにアクセスできるので、一貫性があり信頼性の高いユーザー認証が行われるようになります。またWalletのライフ・サイクルを通して、集中的なWallet管理が可能になります。機能するWalletを誤って上書きするのを防ぐため、インストールされた証明書を含むWalletのみをアップロードできます。
Oracle Wallet Managerを使用してユーザーのWalletをアップロードまたはダウンロードするには、LDAPディレクトリ内のディレクトリ・ユーザー・エントリを事前に定義および構成しておく必要があります。ディレクトリにOracle8i以前のユーザーが含まれている場合、Walletのアップロードやダウンロードの機能を使用できるよう、初めて使用する際にユーザーが自動的にアップグレードされます。
Oracle Wallet Managerでは、単純なパスワードを使用してLDAPディレクトリに接続し、ユーザーWalletをダウンロードします。ただし、開いたWalletにSSL Oracle PKI証明書使用による証明書が含まれている場合、アップロードにはSSL接続が使用されます。SSL証明書がWallet内に存在しない場合は、パスワードによる認証が行われます。
Oracle Wallet Managerを起動する手順は次のとおりです。
owm
と入力します。
Walletは、ピアの証明書の検証に必要なユーザー証明書および様々なトラスト・ポイントをセキュアに格納する必須のリポジトリです。
完全なWalletを作成するプロセスの概要を次に示します。
これはパスワードを使用せずにPKIベースでサービスにアクセスするための機能ですが、通常は、ほとんどのWalletに必要です。データベース・サーバーおよびクライアントのWalletには必須です。起動の時点でWalletパスワードを受け取る製品の場合にのみ、これを省略できます。
ここに示したプロセスが完了すると、ユーザー証明書とそのトラスト・ポイントが含まれたWalletが完成します。
この項では、新しいWalletの作成方法と、関連するWallet管理タスクの実行方法を説明します。この項の項目は次のとおりです。
Oracle Walletには、ユーザーを複数のデータベースについて認証する際に使用できるユーザー資格証明が含まれているので、強度の高いWalletパスワードを選択することが重要です。悪意のあるユーザーが、Walletパスワードを推測し、Wallet所有者がアクセス権を持つすべてのデータベースにアクセスすることもあり得ます。
パスワードは、数字または特殊文字を含む8文字以上のアルファベットで構成する必要があります。
Oracle Wallet Managerを使用すると、PKCS #12 Wallet(デフォルトの標準タイプのWallet)を作成できます。このWalletでは、資格証明はファイル・システム上のディレクトリに格納されます。また、PKCS #11 Walletも作成できます。これは、資格証明をサーバーのハードウェア・セキュリティ・モジュールに格納する、または秘密鍵をクライアントのトークンに格納するWalletです。次の各項では、Oracle Wallet Managerを使用してこれらのタイプのWalletを作成する方法を説明します。
ハードウェア・セキュリティ・モジュール(PKCS #11のデバイス)がない場合は、ファイル・システム上のディレクトリに資格情報を格納する標準Walletを使用してください。
標準Walletを作成するには、次の作業を実行します。
Password must have a minimum length of eight characters, and contain alphabetic characters combined with numbers or special characters. Do you want to try again?
「いいえ」を選択すると、Oracle Wallet Managerのメイン・ウィンドウに戻ります。作成したばかりの新しいWalletが左のウィンドウに表示されます。証明書のステータスは「空」で、Walletはデフォルトの信頼できる証明書を表示します。
システムのデフォルトにWalletを保存する権限がない場合は、別の場所にWalletを保存します。クライアントおよびサーバーのSSL構成で、この場所を使用します。
Walletが正常に保存されたことを確認するメッセージが、ウィンドウの一番下に表示されます。
PKCS #11準拠のハードウェア・セキュリティ・モジュールに資格証明を格納するWalletを作成するには、次のタスクを実行します。
スマートカードのパスワード(Walletのパスワードとは別)は、Walletの中に格納されます。
「いいえ」を選択すると、Oracle Wallet Managerのメイン・ウィンドウに戻ります。作成したばかりの新しいWalletが左のウィンドウに表示されます。証明書のステータスは「空」で、Walletはデフォルトの信頼できる証明書を表示します。
システムのデフォルトにWalletを保存する権限がない場合は、別の場所にWalletを保存します。
Walletが正常に保存されたことを確認するメッセージが、ウィンドウの一番下に表示されます。
ファイル・システム・ディレクトリにすでに存在するWalletを開くには、次の手順に従います。
メイン・ウィンドウに戻り、Walletが開かれたことを示すメッセージがウィンドウの一番下に表示されます。Walletの証明書と信頼できる証明書が左のウィンドウに表示されます。
現在選択されているディレクトリで開いているWalletを閉じるには、次の手順に従います。
「ウォレット」→「閉じる」を選択します。
ウィンドウの一番下にメッセージが表示され、Walletが閉じたことを確認できます。
Oracle Wallet Managerでは、Walletをサード・パーティ環境にエクスポートできます。
ewallet.p12
と呼ばれます)。PKCS #12をサポートしていないツールにWalletを追加する場合は、テキストベースのPKIフォーマットにWalletをエクスポートします。個別のコンポーネントは表11-1に示す標準に従ってフォーマットされます。Wallet内では、SSL鍵を使用する証明書だけがWalletでエクスポートされます。
コンポーネント | エンコーディング規格 |
---|---|
証明連鎖 |
X509v3 |
信頼できる証明書 |
X509v3 |
秘密鍵 |
PKCS #8 |
指定されたWalletにSSL証明書がある場合、Oracle Wallet ManagerはSSLを使用してWalletをLDAPディレクトリにアップロードします。証明書がない場合、ユーザーはディレクトリ・パスワードの入力を求められます。
誤ってWalletが破壊されるのを防ぐために、対象となるWalletが現在開かれていて、少なくとも1つのユーザー証明書が含まれていないかぎり、Oracle Wallet Managerはアップロード・オプションの実行をユーザーに許可しません。
アップロードを実行する前にWalletを保存してください。
「はい」を選択して、操作を続行します。
SSL
鍵使用の有無が確認されます。WalletでSSL
鍵を使用した証明書が見つかったかどうかによって、次のような結果になります。
接続に失敗した場合は、指定されているDNのディレクトリ・パスワードの入力を求めるダイアログ・ボックスが表示されます。Oracle Wallet Managerによって、このパスワードを使用したLDAPディレクトリ・サーバーへの接続が試行され、接続に失敗した場合には警告メッセージが表示されます。接続に成功すると、正常にアップロードされたことを示すメッセージがウィンドウの一番下に表示されます。
WalletはLDAPディレクトリからダウンロードされると、作業メモリーに入れられます。次の項で説明するいずれかの保存オプションを使用して明示的に保存しないと、ファイル・システムには保存されません。
ダウンロード操作が成功したかどうかによって、次のような結果になります。
Walletのパスワードを使用してもWalletを開くことができない場合は、入力したパスワードが正しいことを確認してください。成功すると、Walletが正常にダウンロードされたことを示すメッセージがウィンドウの一番下に表示されます。
現在開いているWalletに変更を保存するには、次の手順に従います。
「ウォレット」→「保存」を選択します。
選択されたディレクトリ内のWalletに変更が正常に保存されたことを確認するメッセージが、ウィンドウの一番下に表示されます。
Walletを新しい場所に保存するには、「別名保存」メニュー・オプションを使用します。
選択した場所にWalletがすでに存在する場合は、次のメッセージが表示されます。
A wallet already exists in the selected path. Do you want to overwrite it?
既存のWalletを上書きするには、「はい」を選択します。Walletを別の場所に保存するには、「いいえ」を選択します。
選択されたディレクトリの場所にWalletが正常に保存されたことを確認するメッセージが、ウィンドウの一番下に表示されます。
Walletをデフォルトのディレクトリの場所に保存するには、「システム・デフォルトに保存」メニュー・オプションを使用します。
「ウォレット」→「システム・デフォルトに保存」を選択します。
システムのデフォルトのWalletの場所に正常に保存されたことを確認するメッセージが、ウィンドウの一番下に表示されます。UNIXおよびWindowsプラットフォームのデフォルト・ディレクトリは次のとおりです。
現在開いているWalletを削除するには、次の手順に従います。
パスワードの変更はただちに有効になります。Walletは、新たに暗号化されたパスワードとともに、現在選択されているディレクトリに保存されます。
現在開いているWalletのパスワードを変更するには、次の手順に従います。
パスワードが正常に変更されたことを確認するメッセージが、ウィンドウの一番下に表示されます。
Oracle Wallet Managerの自動ログイン機能では、Walletのあいまいなコピーを作成し、そのWalletの自動ログイン機能が無効になるまで、パスワードなしでサービスにPKIアクセスすることを可能にします。ファイル・システム権限では、Walletの自動ログインに必要なセキュリティが提供されます。
複数のOracleデータベースにシングル・サインオンでアクセスする場合は、自動ログインを有効化する必要があります(デフォルトでは無効)。これらはシングル・サインオン機能を持つため、SSO Walletと呼ばれることもあります。
自動ログインを有効化するには、次の手順に従います。
自動ログインを無効化するには、次の手順に従います。
Oracle Wallet Managerでは、ユーザー証明書と信頼できる証明書の2種類の証明書が使用されます。証明書はすべて、ネットワークIDを対応する公開鍵にバインドする署名付きデータ構造です。ユーザー証明書は、公開鍵/秘密鍵の交換において、サーバー・アプリケーションなどエンド・エンティティのIDを確認するために使用されます。これに対し、信頼できる証明書は、ユーザーが信頼する任意の証明書です。たとえば、CAが発行するユーザー証明書を確認するためにCAで提供される証明書などです。
この項では、この2種類の証明書の管理方法を説明します。この項の項目は次のとおりです。
ユーザー証明書はエンド・ユーザー、スマート・カード、またはWebサーバーなどのアプリケーションで使用されます。サーバー証明書は、ユーザー証明書の1つです。たとえば、CAでWebサーバーの証明書が発行され、件名のフィールドにその識別名(DN)が記述されていれば、そのWebサーバーが証明書の所有者、つまりこのユーザー証明書のユーザーとなります。
ユーザー証明書の管理には、次のようなタスクが含まれます。
Oracle Wallet Managerを使用して、複数の証明書リクエストを追加できます。複数のリクエストを追加すると、Oracle Wallet Managerでは自動的に最初のリクエストの内容を、それに続く各リクエストのダイアログ・ボックスに取り込みます。これは後から編集できます。
実際の証明書リクエストは、Walletの一部になります。証明書リクエストを再利用して、新しい証明書を取得できます。ただし、既存の証明書リクエストの編集はできません。Walletには、正しく入力された証明書だけを格納してください。
PKCS #10証明書リクエストを作成するには、次の手順に従います。
フィールド名 | 説明 |
---|---|
共通名 |
必須。ユーザーまたはサービスの識別名を入力します。ユーザー名は、名前/姓の書式で入力します。 例: Eileen.Sanger |
組織単位 |
オプション。識別対象の組織単位名を入力します。例: Finance |
組織 |
オプション。識別対象の組織名を入力します。例: XYZ Corp. |
市町村 |
オプション。識別対象が所在する市区町村名を入力します。 |
都道府県 |
オプション。識別対象が所在する都道府県名を略さずに入力します。 認証局によっては略称を受け入れない場合があるので、フル・ネームで入力してください。 |
国 |
必須。国の略称リストを表示します。組織の所在地の国を選択します。 |
鍵のサイズ |
必須。公開鍵と秘密鍵のペアを作成する際に使用する鍵サイズのリストを表示します。鍵サイズの評価には、表11-3を参照してください。 |
詳細 |
オプション。「詳細」を選択すると、「証明書リクエストの詳細」ダイアログ・パネルが表示されます。このフィールドを使用して、識別名(DN)を編集またはカスタマイズします。たとえば、都道府県や市区町村のフル・ネームを編集できます。 |
表11-3に、使用できる鍵サイズおよび各サイズで提供されるセキュリティを示します。通常、CAでは1024または2048の鍵サイズが使用されます。証明書の所有者が長期間鍵を保存する場合は、3072または4096ビット鍵を選択します。
鍵のサイズ | 関連するセキュリティ・レベル |
---|---|
512または768 |
セキュアであるとは見なされません。 |
1024または2048 |
セキュアです。 |
3072または4096 |
非常にセキュアです。 |
認証局から証明書が交付されるとき、証明書は電子メールでテキスト(BASE64)形式で送信されることも、バイナリ・ファイルとして添付されることもあります。
認証局の電子メールのテキストからユーザー証明書をインポートするには、テキスト(BASE64)で記述されている証明書を電子メール・メッセージからコピーします。Begin Certificate
およびEnd Certificate
の行を取り込みます。
Please provide a base64 format certificate and paste it below.
aまたはbのいずれかを完了すると、証明書が正常にインストールされたことを確認するメッセージが、ウィンドウの一番下に表示されます。Oracle Wallet Managerのメイン・ウィンドウが再び表示され、左のパネルのサブツリーにある対応するエントリのステータスが「待機中」に変化します。
ファイル内のユーザー証明書は、テキスト(BASE64)とバイナリ(der
)のどちらの形式でもかまいません。
cert.txt
やcert.der
)を選択します。
aまたはbのいずれかを完了すると、証明書が正常にインストールされたことを確認するメッセージが、ウィンドウの一番下に表示されます。Oracle Wallet Managerのメイン・パネルに戻ります。左のパネルのサブツリーにある対応するエントリが「待機中」に変化します。
第三者の証明書とは、Oracle Wallet Managerを使用して生成されたのではない証明書リクエストから作成された証明書を指します。このような第三者の証明書には、ユーザー証明書以外も含まれるので、Oracleの観点では実際にはWalletです。第三者の証明書には、その証明書の秘密鍵も含まれています。さらに、信頼できる証明書の連鎖が含まれており、証明書を作成したのが信頼できる機関であることが立証されます。
PKCS #12形式でインポートすると、Oracle Wallet ManagerでこのようなWalletを利用できるようになります。この形式には、前述の3つの要素(ユーザー証明書、秘密鍵、信頼できる証明書)がすべて含まれます。サポートされるPKCS #12形式の証明書は次のとおりです。
Oracle Wallet ManagerはPKCS #12規格に準拠しています。したがって、PKCS #12準拠のツールでエクスポートされた証明書は、すべてOracle Wallet Managerで使用できます。
このような第三者の証明書を既存のOracle Walletに格納することはできません。秘密鍵や信頼できる機関の連鎖が欠如している可能性があるためです。したがって、このような証明書に対しては、それぞれ独立したPKCS #12ファイルとして、つまり個別のWalletとしてエクスポートおよび取出しを実行します。
サード・パーティ製ツールで作成された証明書をインポートするには、初めに、使用しているアプリケーションから証明書をエクスポートします。次に、Oracle Wallet Managerで読取り可能なWalletファイルとして証明書を保存します。
作成されたファイル(証明書、秘密鍵およびトラスト・ポイントを含む)は新しいWalletであり、これによって第三者の証明書を利用できるようになります。
UNIXおよびWindowsの場合、ファイル名はewallet.p12
です。
その他のオペレーティング・システムについては、該当するオペレーティング・システムのOracleドキュメントを参照してください。
ewallet.p12
ファイルが保存されているディレクトリにナビゲートしてファイルを開き、格納されているPKI資格証明を使用します。
関係するアプリケーションの起動時など、証明書が必要とされるときに、パスワードが要求されます。このようなアクセスを自動化するには、第11.1.4.14項「自動ログインの使用」を参照してください。
ただし、証明書の秘密鍵が、独立したハードウェア・セキュリティ・モジュール内に保持されている場合は、その証明書をインポートすることはできません。
注意
信頼できる証明書を別にエクスポートした場合は、インポートした第三者のユーザー証明書が含まれているewallet.p12
ファイルを開く前に、信頼できる証明書をインポートしてください。
Walletからユーザー証明書を削除するには、次の手順に従います。
関連するリクエストを削除する前に、証明書を削除する必要があります。
証明書リクエストを削除するには、次の手順に従います。
証明書をファイル・システム・ディレクトリに保存するには、次の手順に従って証明書をエクスポートします。
Walletのエクスポートの詳細は、第11.1.4.5項「サード・パーティ環境へのOracle Walletのエクスポート」を参照してください。Oracle Wallet Managerでは複数の証明書を1つのWalletに格納する機能をサポートしていますが、現時点では、ブラウザでサポートされているのは一般に証明書が1つだけのWalletのみです。これらのブラウザでは、単一鍵ペアを持つOracle Walletをエクスポートする必要があります。
関連項目
証明書リクエストをファイル・システム・ディレクトリに保存するには、次の手順に従って証明書リクエストをエクスポートします。
信頼できる証明書の管理には、次のようなタスクが含まれます。
信頼できる証明書をWalletにインポートするには、認証局から受信した電子メールから信頼できる証明書を貼り付ける方法と、信頼できる証明書をファイルからインポートする方法の2つがあります。
Oracle Wallet Managerでは、Walletを新規作成すると、信頼できる証明書がVeriSign、RSA、EntrustおよびGTE CyberTrustから自動的にインストールされます。
テキストのみ(BASE64)の信頼できる証明書をコピーおよび貼り付けるには:
ユーザー証明書が含まれている、受信した電子メール・メッセージの本文から、信頼できる証明書をコピーします。Begin Certificate
およびEnd Certificate
の行を取り込みます。
Please provide a base64 format certificate and paste it below.
信頼できる証明書が含まれているファイルは、テキスト(BASE64)とバイナリ(der
)のいずれかの形式で保存されています。
cert.txt
)を選択します。
ユーザー証明書の署名に使用した信頼できる証明書は、そのユーザー証明書がまだWallet内に残っている間は削除できません。このような信頼できる証明書を削除するには、まず署名した証明書を削除する必要があります。また、Walletから信頼できる証明書が削除された後は、証明書を確認できません。
信頼できる証明書をWalletから削除するには、次の手順に従います。
署名に使用された信頼できる証明書を削除すると、使用しているユーザー証明書を受信者が検査できなくなることを警告するダイアログ・パネルが表示されます。
信頼できる証明書をファイル・システムの別の場所にエクスポートするには、次の手順に従います。
信頼できる証明書すべてをファイル・システムの別の場所にエクスポートするには、次の手順に従います。
orapki
ユーティリティは、証明書失効リスト(CRL)の管理、Oracle Walletの作成と管理、およびテスト用の署名付き証明書の作成を行うためのコマンドライン・ツールです。
次の各項目で、このツールの概要と使用方法を説明します。
orapki
は、公開鍵インフラストラクチャ(PKI)の要素(Walletや証明書失効リストなど)の管理をコマンドラインで行うためのユーティリティです。このユーティリティで実行するタスクを、スクリプトの中に組み込むことができます。このユーティリティを利用すると、PKIの保守に関する定常的なタスクの多くを自動化できます。
このコマンドライン・ユーティリティを使用して実行できるタスクは次のとおりです。
orapki
コマンドライン・ユーティリティの基本的な構文は次のとおりです。
orapki module command -parameter value
このコマンドのmodule
は、wallet
(Oracle Wallet)、crl
(証明書失効リスト)、cert
(PKIデジタル証明書)のいずれかです。使用できるコマンドは、使用するmodule
によって異なります。たとえば、wallet
の操作を行う場合は、add
コマンドを使用して証明書や鍵をWalletに追加できます。次の例では、/private/lhale/cert.txt
にあるユーザー証明書を、ORACLE_HOME/wallet/ewallet.p12
にあるWalletに追加します。
orapki wallet add -wallet ORACLE_HOME/wallet/ewallet.p12 -user_cert -cert /private/lhale/cert.txt
特定のモードで使用可能なorapki
のコマンドをすべて表示するには、コマンドラインで次のように入力します。
orapki mode help
たとえば、証明書失効リスト(CRL)の管理に使用できるコマンドをすべて表示するには、コマンドラインで次のように入力します。
orapki CRL help
このコマンドライン・ユーティリティを利用すると、テスト用の署名付き証明書を簡単に作成できます。署名付き証明書の作成および表示を行うための構文を次に示します。
orapki cert create [-wallet wallet_location] -request certificate_request_location -cert certificate_location -validity number_of_days [-summary]
このコマンドを実行すると、証明書リクエストから署名付き証明書が作成されます。-wallet
パラメータでは、証明書リクエストに署名するために使用されるユーザー証明書および秘密鍵を含むWalletを指定します。-validity
パラメータでは、この証明書の有効期間を、実行日からの日数として指定します。このコマンドでは、証明書と証明書リクエストの指定は必須です。
orapki cert display -cert certificate_location [-summary | -complete]
このコマンドでは、orapki
で作成したテスト証明書を表示できます。-summary
と-complete
のいずれかを選択して、表示する詳細のレベルを指定できます。-summary
を選択すると、証明書とその有効期限が表示されます。-complete
を選択すると、シリアル番号や公開鍵などの、その他の証明書情報も表示されます。
次の各項では、orapki
コマンドライン・ユーティリティを使用してOracle Walletを作成および管理するための構文を説明します。orapki
ユーティリティのwallet
モジュールのコマンドをスクリプトで使用すると、Wallet作成プロセスを自動化できます。
orapki wallet create -wallet wallet_location
このコマンドを実行すると、Walletのパスワードの入力と再入力を要求されます。Walletは、-wallet
で指定した場所に作成されます。
orapki wallet create -wallet wallet_location -auto_login
このコマンドを実行すると、自動ログイン可能なWalletが作成されます。既存のWalletに対して自動ログインを有効化することもできます。wallet_location
にすでにWalletが含まれる場合は、そのWalletの自動ログインが有効化されます。自動ログイン機能を無効にするには、Oracle Wallet Managerを使用します。詳細は、第11.1.4.14項「自動ログインの使用」を参照してください。
orapki wallet display -wallet wallet_location
このコマンドを実行すると、Walletに含まれている証明書リクエスト、ユーザー証明書および信頼できる証明書が表示されます。
orapki wallet add -wallet wallet_location -dn user_dn -keySize 512|1024|2048
このコマンドを実行すると、指定した識別名(user_dn
)のユーザーのWalletに証明書リクエストが追加されます。リクエストする証明書の鍵サイズ(512ビット、1024ビットまたは2048ビット)も指定します。リクエストの署名およびエクスポート・オプションによるリクエストのエクスポートについては、第11.2.4.3項「orapkiによるOracle Walletからの証明書および証明書リクエストのエクスポート」を参照してください。
orapki wallet add -wallet wallet_location -trusted_cert -cert certificate_location
このコマンドを実行すると、指定した場所(-cert
certificate_location
)にある信頼できる証明書がWalletに追加されます。ユーザー証明書を追加する前に、ユーザー証明書の証明連鎖内の信頼できる証明書をすべて追加する必要があります。そうしなければ、ユーザー証明書を追加するコマンドは失敗します。
orapki wallet add -wallet wallet_location -dn certificate_dn -keySize 512|1024|2048 -self_signed -validity number_of_days
このコマンドを実行すると、新しい自己署名(ルート)証明書が作成されてWalletに追加されます。-validity
パラメータ(必須)では、この証明書の有効期間を、実行日からの日数として指定します。このルート証明書の鍵サイズ(-keySize
)には、512ビット、1024ビット、2048ビットのいずれかを指定できます。
orapki wallet add -wallet wallet_location -user_cert -cert certificate_location
このコマンドを実行すると、-cert
パラメータで指定した場所にあるユーザー証明書が、wallet_location
にあるWalletに追加されます。Walletにユーザー証明書を追加する前に、証明連鎖を構成するすべての信頼できる証明書を追加する必要があります。ユーザー証明書を追加する前に、Walletにすべての信頼できる証明書がインストールされていない場合、ユーザー証明書の追加に失敗します。
orapki wallet export -wallet wallet_location -dn certificate_dn -cert certificate_filename
このコマンドを実行すると、サブジェクトの識別名(-dn
)を持つ証明書が、Walletから、-cert
で指定されたファイルにエクスポートされます。
orapki wallet export -wallet wallet_location -dn certificate_request_dn -request certificate_request_filename
このコマンドを実行すると、サブジェクトの識別名(-dn
)を持つ証明書リクエストが、Walletから、-request
で指定したファイルにエクスポートされます。
CRLの管理にはorapki
を使用する必要があります。このユーティリティによって、CRL発行者名のハッシュ値が作成されます。このハッシュ値は、システム内のCRLの場所を特定するためのものです。orapki
を使用しないと、PKIデジタル証明書を検証するためのCRLをOracleサーバーが見つけることができなくなります。次の各項では、CRLの概要と使用方法、およびorapkiを使用した管理方法を説明します。
特定の証明書が特定の状況において使用可能かどうかを判断するプロセスを、証明書の検証と呼びます。証明書の検証では、次のことを判断します。
最初の3つの検証はSSLネットワーク層によって自動的に実行されますが、証明書が失効していないことを確認するために、管理者は証明書失効リスト(CRL)チェックを構成する必要があります。CRLとは署名付きデータ構造で、失効した証明書のリストが格納されています。CRLは一般に、元の証明書を発行したのと同じ機関によって発行および署名されます。
信頼できるトラスト・ポイントすべてについて、CRLが必要です。トラスト・ポイントとは、特定の信頼レベルを満たした第三者のIDからの信頼できる証明書です。一般的に、信頼できる認証局をトラスト・ポイントと呼びます。
証明書の失効ステータスは、ファイル・システム・ディレクトリまたはOracle Internet Directory内にあるCRL、または証明書のCRL配布ポイント(CRL DP)拡張で指定されている場所からダウンロードされたCRLと比較してチェックされます。CRLをローカル・ファイル・システムまたはディレクトリに格納する場合は、管理者が定期的に更新する必要があります。CRL DPを使用する場合は、証明書の使用のたびにCRLがダウンロードされるので、CRLを定期的にリフレッシュする必要はありません。
サーバーは、次に示す順序でCRLを探します。証明書CAのDNと一致するCRLが見つかると、検索は終了します。
sqlnet.ora
ファイルにSSL_CRL_FILE
パラメータがあるかどうかを調べます。次に、SSL_CRL_PATH
パラメータを探します。この2つのパラメータが指定されていない場合は、Walletの保存場所にCRLがあるかどうかを調べます。
注意: CRLをローカル・ファイル・システムに格納する場合は、orapki
ユーティリティを使用してCRLを定期的に更新する必要があります。第11.2.5.2.1項「証明書検証のためのハッシュ値によるCRL名の変更」を参照してください。
ローカル・ファイル・システム上でCRLが見つからないけれども、ORACLE_HOME/ldap/admin/ldap.ora
ファイル内でディレクトリ接続情報が構成されている場合は、そのディレクトリ内を検索します。CAの識別名(DN)とCRLサブツリーのDNを使用してCRLサブツリーを検索します。
このディレクトリ内でCRLを検索できるようにするには、サーバーのldap.ora
ファイルが正しく構成されている必要があります。Oracle Internet Directoryのドメイン・ネーム・システム(DNS)探索機能は使用できません。また、CRLをディレクトリ内に格納する場合は、orapki
ユーティリティを使用してCRLを定期的に更新する必要があります。第11.2.5.2.2項「Oracle Internet DirectoryへのCRLのアップロード」を参照してください。
証明書の発行時にX.509バージョン3のCRL DP証明書拡張でCAによって場所が指定されている場合は、その証明書の失効情報を含むCRLがダウンロードされます。現時点では、Oracle Advanced SecurityはHTTPおよびLDAPを介したCRLのダウンロードをサポートしています。
証明書失効ステータスのチェックを有効にする前に、使用しているCAから受け取るCRLが、システムで使用可能な形式(ハッシュ値で名前変更済)であること、または場所(ディレクトリにアップロード済)に存在することを確認する必要があります。Oracle Advanced Securityには、次の作業の実行が可能なコマンドライン・ユーティリティorapki
が用意されています。
LDAPのコマンドライン・ツールを使用して、Oracle Internet Directoryの中にあるCRLを管理することもできます。
証明書を作成したCAによって発行されたCRLを、証明書の検証時にシステムが検出できるようにしておく必要があります。システムは証明書内の発行者名とCRL内の発行者名を対応させ、該当するCRLを検出します。
Oracle Net Managerの「証明書失効リスト・パス」フィールドでCRLの格納場所を指定するときに(sqlnet.ora
ファイル内のSSL_CRL_PATH
パラメータを設定する)、orapki
ユーティリティを使用して、発行者名を表すハッシュ値によってCRLの名前を変更してください。ハッシュ値を作成すると、サーバーがCRLをロードできるようになります。
UNIXシステムでは、orapki
によってCRLへのシンボリック・リンクが作成されます。Windowsシステムでは、CRLファイルのコピーが作成されます。どちらの場合も、orapki
によって作成されたシンボリック・リンクまたはコピーの名前には、発行者名のハッシュ値が使用されます。その後で、システムが証明書を検証するときに、同じハッシュ関数を使用してリンクまたはコピーの名前が計算されるので、正しいCRLをロードできるようになります。
オペレーティング・システムに応じて次のいずれかのコマンドを使用し、ファイル・システム内に格納されているCRLの名前を変更します。
orapki crl hash -crl crl_filename [-wallet wallet_location] -symlink crl_directory [-summary]
orapki crl hash -crl crl_filename [-wallet wallet_location] -copy crl_directory [-summary]
このコマンドのcrl_filename
はCRLファイルの名前、wallet_location
はCRLを発行したCAの証明書が含まれているWalletの場所、crl_directory
はCRLが存在するディレクトリです。
-wallet
および-summary
は、省略可能です。-wallet
を指定すると、CRL名を変更する前に、CAの証明書と比較してCRLの有効性が検証されます。-summary
オプションを指定すると、CRLの発行者名が表示されます。
CRLをディレクトリ内で公開すると、CRL検証を企業全体で行うことができ、個々のアプリケーションで独自のCRLを構成する必要はなくなります。集中管理可能なディレクトリに格納されたCRLをすべてのアプリケーションで利用できるので、CRLの管理および利用における管理オーバーヘッドが大幅に削減されます。
orapki
を使用してCRLをディレクトリにアップロードするユーザーは、ディレクトリ・グループCRLAdmins
(cn=CRLAdmins,cn=groups,%s_OracleContextDN%
)のメンバーである必要があります。この操作の実行に権限が必要とされるのは、CRLが企業全体からアクセス可能であるためです。実行するユーザーをこの管理用ディレクトリ・グループに追加するには、ディレクトリ管理者に連絡してください。
orapki crl upload -crl crl_location -ldap hostname:ssl_port -user username [-wallet wallet_location] [-summary]
このコマンドで、crl_location
はCRLが存在するファイルの名前またはURL、hostname
およびssl_port
(認証なしのSSLポート)はディレクトリがインストールされているシステムのホスト名とポート、username
はCRLサブツリーにCRLを追加する権限を持つディレクトリ・ユーザー、wallet_location
はCRLを発行したCAの証明書が含まれているWalletの場所です。
-wallet
および-summary
は、省略可能です。-wallet
を指定すると、ディレクトリへのアップロードの前に、CAの証明書と比較してCRLの有効性が検証されます。-summary
オプションを指定すると、CRLの発行者名およびディレクトリ内にCRLが格納されているLDAPエントリが出力されます。
ディレクトリに格納されているすべてのCRLを、orapki
を使用して一覧表示できます。これはCRLを探して表示したり、ローカル・システムにダウンロードしたりするときに便利です。このコマンドを実行すると、CRLを発行したCA(発行者)およびディレクトリのCRLサブツリー内の場所(DN)が出力されます。
orapki crl list -ldap hostname:ssl_port
このコマンドのhostname
およびssl_port
は、ディレクトリがインストールされているシステムのホスト名とSSLポートです。前述のとおり、これは認証なしのディレクトリSSLポートです。
Oracle Internet Directoryに格納されている特定のCRLを要約形式で表示できます。また、特定のCRLに対応する失効済証明書の完全なリストを表示することもできます。要約形式のリストには、CRLの発行者名とその有効期間が表示されます。完全なリストには、特定のCRLに含まれているすべての失効済証明書が一覧表示されます。
orapki crl display -crl crl_location [-wallet wallet_location] -summary
このコマンドのcrl_location
は、ディレクトリ内のCRLの場所です。orapki crl list
コマンドの使用時に表示されるリストからCRLの場所を貼り付けると便利です。第11.2.5.2.3項「Oracle Internet Directoryに格納されているCRLの一覧表示」を参照してください。
orapki crl display -crl crl_location [-wallet wallet_location] -complete
たとえば、次のようなorapki
コマンドの場合、
orapki crl display -crl $T_WORK/pki/wlt_crl/nzcrl.txt -wallet $T_WORK/pki/wlt_crl -complete
出力は次のようになります。CRL発行者のDN、発行日、次回更新日およびCRL内の失効済証明書が表示されます。
issuer = CN=root,C=us, thisUpdate = Sun Nov 16 10:56:58 PST 2003, nextUpdate = Mon Sep 30 11:56:58 PDT 2013, revokedCertificates = {(serialNo = 153328337133459399575438325845117876415, revocationDate - Sun Nov 16 10:56:58 PST 2003)} CRL is valid
orapki crl display
コマンドの実行時に-wallet
オプションを使用すると、CRLがCAの証明書と比較して検証されます。
CRLのサイズによっては、-complete
オプションを指定すると表示に時間がかかることがあります。
ディレクトリ内のCRLを表示するには、Oracle Internet Directory付属のグラフィカル・ユーザー・インタフェース・ツールであるOracle Directory Managerを使用することもできます。CRLは、次に示すディレクトリ内の場所に格納されています。
cn=CRLValidation,cn=Validation,cn=PKI,cn=Products,cn=OracleContext
orapki
を使用してディレクトリからCRLを削除するユーザーは、ディレクトリ・グループCRLAdmins
のメンバーである必要があります。このディレクトリ管理グループの詳細は、第11.2.5.2.2項「Oracle Internet DirectoryへのCRLのアップロード」を参照してください。
orapki crl delete -issuer issuer_name -ldap hostname:ssl_port -user username [-summary]
このコマンドのissuer_name
はCRLを発行したCAの名前、hostname
およびssl_port
はディレクトリがインストールされているシステムのホスト名とSSLポート、username
はCRLサブツリーからCRLを削除する権限を持つディレクトリ・ユーザーです。これは認証なしのディレクトリSSLポートであることに注意してください。このポートの詳細は、第11.2.5.2.2項「Oracle Internet DirectoryへのCRLのアップロード」を参照してください。
-summary
オプションを使用すると、削除されたCRLのLDAPエントリが出力されます。
たとえば、次のようなorapki
コマンドの場合、
orapki crl delete -issuer "CN=root,C=us" -ldap machine1:3500 -user cn=orcladmin -summary
出力は次のようになります。ディレクトリ内の削除されたCRLの場所が一覧表示されます。
Deleted CRL at cn=root cd45860c.rN,cn=CRLValidation,cn=Validation,cn=PKI,cn=Products,cn=OracleContext
この項では、次のorapki
コマンドについて説明します。
次の各項では、このコマンドについて説明します。
テスト用に署名付き証明書を作成するときに使用します。
orapki cert create [-wallet wallet_location] -request certificate_request_location -cert certificate_location -validity number_of_days [-summary]
-wallet
パラメータでは、証明書リクエストに署名するために使用されるユーザー証明書および秘密鍵を含むWalletを指定します。
-request
パラメータ(必須)では、作成する証明書の証明書リクエストの場所を指定します。
-cert
パラメータ(必須)では、新しい署名付き証明書の出力先となるディレクトリの場所を指定します。
-validity
パラメータ(必須)では、この証明書の有効期間を、実行日からの日数として指定します。
次の各項では、このコマンドについて説明します。
特定の証明書の詳細を表示するときに使用します。
orapki cert display -cert certificate_location [-summary|-complete]
次の各項では、このコマンドについて説明します。
Oracle Internet DirectoryからCRLを削除するときに使用します。orapki
を使用してディレクトリからCRLを削除するユーザーは、CRLAdmins
(cn=CRLAdmins,cn=groups,%s_OracleContextDN%
)ディレクトリ・グループのメンバーである必要があります。
orapki crl delete -issuer issuer_name -ldap hostname:ssl_port -user username [-summary]
-issuer
パラメータでは、CRLを発行した認証局(CA)の名前を指定します。
-ldap
パラメータでは、削除するCRLが存在するディレクトリのホスト名およびSSLポートを指定します。これは認証なしのディレクトリSSLポートであることに注意してください。このポートの詳細は、第11.2.5.2.2項「Oracle Internet DirectoryへのCRLのアップロード」を参照してください。
-user
パラメータでは、ディレクトリ内のCRLサブツリーからCRLを削除する権限を持つディレクトリ・ユーザーのユーザー名を指定します。
-summary
パラメータは省略可能です。このパラメータを使用すると、削除されたCRLのLDAPエントリが出力されます。
次の各項では、このコマンドについて説明します。
Oracle Internet Directory内に格納されている特定のCRLを表示するときに使用します。
orapki crl display -crl crl_location [-wallet wallet_location] [-summary|-complete]
-crl
パラメータでは、ディレクトリ内のCRLの場所を指定します。orapki crl list
コマンドの使用時に表示されるリストからCRLの場所を貼り付けると便利です。第11.2.6.6項「orapki crl list」を参照してください。
-wallet
パラメータ(オプション)では、CRLを発行した認証局(CA)の証明書を含むWalletの場所を指定します。このパラメータを使用すると、CRLを表示する前に、CAの証明書と比較してCRLの有効性が検査されます。
次の各項では、このコマンドについて説明します。
証明書失効リスト(CRL)発行者のハッシュ値を生成するときに使用します。これにより、証明書の検証時にファイル・システム内のCRLの場所を特定します。
orapki crl hash -crl crl_filename|URL [-wallet wallet_location] [-symlink|-copy] crl_directory [-summary]
-crl
パラメータでは、CRLが含まれるファイルの名前、またはCRLが存在する場所のURLを指定します。
-wallet
パラメータ(オプション)では、CRLを発行した認証局(CA)の証明書を含むWalletの場所を指定します。このパラメータを使用すると、CRLをディレクトリへアップロードする前に、CAの証明書と比較してCRLの有効性が検査されます。
-symlink
パラメータまたは-copy
パラメータのいずれかを使用します。
-summary
パラメータ(オプション)を指定すると、CRLの発行者名が表示されます。
次の各項では、このコマンドについて説明します。
Oracle Internet Directory内に格納されているCRLを一覧表示するときに使用します。リストから特定のCRLを探して表示したり、ローカル・ファイル・システムにダウンロードしたりするときに便利です。
orapki crl list -ldap hostname:ssl_port
-ldap
パラメータでは、一覧表示するCRLが存在するディレクトリ・サーバーのホスト名およびSSLポートを指定します。これは認証なしのディレクトリSSLポートであることに注意してください。このポートの詳細は、第11.2.5.2.2項「Oracle Internet DirectoryへのCRLのアップロード」を参照してください。
次の各項では、このコマンドについて説明します。
証明書失効リスト(CRL)をOracle Internet Directory内のCRLサブツリーにアップロードするときに使用します。CRLをディレクトリにアップロードするには、ディレクトリ管理グループCRLAdmins
(cn=CRLAdmins,cn=groups,%s_OracleContextDN%
)のメンバーである必要があります。
orapki crl upload -crl crl_location -ldap hostname:ssl_port -user username [-wallet wallet_location] [-summary]
-crl
パラメータでは、ディレクトリにアップロードするCRLが存在するディレクトリの場所またはURLを指定します。
-ldap
パラメータでは、CRLのアップロード先であるディレクトリのホスト名およびSSLポートを指定します。これは認証なしのディレクトリSSLポートであることに注意してください。このポートの詳細は、第11.2.5.2.2項「Oracle Internet DirectoryへのCRLのアップロード」を参照してください。
-user
パラメータでは、ディレクトリ内のCRLサブツリーにCRLを追加する権限を持つディレクトリ・ユーザーのユーザー名を指定します。
-wallet
パラメータでは、CRLを発行した認証局(CA)の証明書を含むWalletの場所を指定します。このパラメータは省略可能です。このパラメータを使用すると、CRLをディレクトリへアップロードする前に、CAの証明書と比較してCRLの有効性が検査されます。
-summary
パラメータも省略可能です。このパラメータを使用すると、CRLの発行者名およびディレクトリ内にCRLが格納されているLDAPエントリが出力されます。
次の各項では、このコマンドについて説明します。
証明書リクエストおよび証明書をOracle Walletに追加するときに使用します。
証明書リクエストを追加するには:
orapki wallet add -wallet wallet_location -dn user_dn -keySize 512|1024|2048
-wallet
パラメータでは、証明書リクエストの追加先であるWalletの場所を指定します。
-dn
パラメータでは、証明書の所有者の識別名を指定します。
-keySize
パラメータでは、証明書の鍵サイズを指定します。
信頼できる証明書を追加するには:
orapki wallet add -wallet wallet_location -trusted_cert -cert certificate_location
ルート証明書を追加するには:
orapki wallet add -wallet wallet_location -dn certificate_dn -keySize 512|1024|2048 -self_signed -validity number_of_days
ユーザー証明書を追加するには:
orapki wallet add -wallet wallet_location -user_cert -cert certificate_location
-user_cert
パラメータを指定すると、-cert
パラメータで指定した場所にあるユーザー証明書がWalletに追加されます。Walletにユーザー証明書を追加する前に、証明連鎖を構成するすべての信頼できる証明書を追加する必要があります。ユーザー証明書を追加する前に、Walletにすべての信頼できる証明書がインストールされていない場合、ユーザー証明書の追加に失敗します。
次の各項では、このコマンドについて説明します。
Oracle Walletを作成するときや、Oracle Walletの自動ログインを有効化するときに使用します。
orapki wallet create -wallet wallet_location [-auto_login]
-wallet
パラメータでは、新しいWalletを作成する場所、または自動ログインを有効にするWalletの場所を指定します。
-auto_login
パラメータを指定すると、自動ログインWalletが作成されます。または、-wallet
オプションで指定したWalletの自動ログインが有効になります。自動ログインWalletの詳細は、第11.1.4.14項「自動ログインの使用」を参照してください。
次の各項では、このコマンドについて説明します。
Oracle Wallet内の証明書リクエスト、ユーザー証明書および信頼できる証明書を表示するときに使用します。
orapki wallet display -wallet wallet_location
次の各項では、このコマンドについて説明します。
証明書リクエストおよび証明書をOracle Walletからエクスポートするときに使用します。
orapki wallet export -wallet wallet_location -dn certificate_dn -cert certificate_filename
-wallet
パラメータでは、証明書のエクスポート元であるWalletの場所を指定します。
-dn
パラメータでは、証明書の識別名を指定します。
-cert
パラメータでは、エクスポートされた証明書を含むファイルの名前を指定します。
Oracle Walletから証明書リクエストをエクスポートするには:
orapki wallet export -wallet wallet_location -dn certificate_request_dn -request certificate_request_filename
Oracle Wallet Managerの機能は、すでに証明書が割り当てられているユーザーをサポートしています。Oracle Wallet Managerを使用して証明書を作成しない場合でも、作成済の証明書の管理および格納にOracle Wallet Managerを使用できます。
Oracle Wallet Managerは、X.509証明書および秘密鍵を公開鍵暗号規格(PKCS)#12形式で格納します。また、RSA Laboratoriesによって開発されたPKCS #10仕様に従って証明書リクエストを生成します。そのため、Oracle Walletの構造と、サポートされているサード・パーティのPKIアプリケーションとの相互運用性が確保され、異なるオペレーティング・システム間でもWalletが移植可能になります。
Oracle Wallet ManagerのWalletは、PKCS #11仕様に準拠するAPIを使用して資格証明をハードウェア・セキュリティ・モジュール上に格納するように設定できます。Walletの作成時にWalletのタイプとしてPKCS11
が選択されている場合は、そのWalletに格納される鍵はすべてハードウェア・セキュリティ・モジュールまたはトークン(秘密鍵の格納または暗号化操作の実行、またはその両方を行う、スマートカード、PCMCIAカード、スマート・ディスケットなどのポータブル・ハードウェア・デバイス)に保存されます。
関連項目
|
Oracle Wallet Managerでは、個々のWalletに複数の証明書を格納できます。これによって、次のようなOracle PKI証明書使用がサポートされます。
Oracle Wallet Managerでは、1つのデジタル・エンティティの証明書を複数サポートしています。各証明書は一連のOracle PKI証明書での使用に利用できますが、1つの証明書をすべての使用に利用できるわけではありません(使用の正当な組合せについては、表11-4および表11-5を参照)。証明書リクエストと証明書は、1対1でマッピングされている必要があります。同一の証明書リクエストを使用して複数の証明書を取得することはできますが、各証明書リクエストの複数の証明書を、同時に同じWalletにインストールすることはできません。
Oracle Wallet Managerでは、X.509バージョン3のKeyUsage
拡張タイプを使用してOracle PKI証明書使用を定義します。鍵使用目的拡張のタイプはそれぞれ、証明書内で設定されるオプションのビットです。このビットを設定することで、証明書の鍵をどのような目的に使用できるか定義します。証明書を発行するとき、認証局では要求された証明書のタイプに応じてこれらのビットを設定します。表11-4ではこれらの鍵の用途について説明しています。
Oracle Wallet Managerで証明書(ユーザー証明書または信頼できる証明書)をインストールするとき、表11-4および表11-5に示すとおり、KeyUsage
拡張の値がOracle PKI証明書使用にマッピングされます。
KeyUsageの値 | クリティカルか否か1 | 用途 |
---|---|---|
なし |
該当せず |
インポート可能 |
5を除く組合せ |
○ |
インポート不可能 |
5を除く組合せ |
× |
インポート可能 |
5のみ、または5を含む組合せ |
該当せず |
インポート可能 |
1
KeyUsage 拡張がクリティカルである場合は、その証明書を他の目的に使用することはできません。 |
必要なOracle PKI証明書使用に該当するKeyUsage
値で、認証局から証明書を取得します。1つのWalletに、同じ用途の鍵ペアが複数含まれることもあります。表11-4および表11-5に示すように、各証明書ではOracle PKI証明書使用を複数サポートできます。Oracle PKIアプリケーションでは、必要なPKI証明書使用を含んでいる最初の証明書を使用します。
たとえば、SSLで使用する場合、SSL Oracle PKI証明書使用を含む最初の証明書が使用されます。
SSLで使用する証明書が1つもない場合は、ORA-28885
エラー(「必須の鍵使用方法のある証明書が見つかりません
」)が返されます。
|
Copyright © 2002, 2007, Oracle. All Rights Reserved. |
|