Oracle Application Server 10gでは、証明書失効リスト(CRL)の管理、Oracleウォレットの作成と管理、およびテスト用の署名付き証明書の作成のためのコマンドライン・ツールであるorapkiユーティリティが提供されていました。また、SSL構成ツールも提供されていました。
Oracle Fusion Middleware 12c (12.1.2)では、SSLを構成するために、コマンドライン・ユーザー・インタフェースとグラフィカル・ユーザー・インタフェースの両方が提供されています。Oracle WebLogic Scripting Tool (WLST)およびOracle Enterprise Manager Fusion Middleware Controlにより、ユーザーはKSSベースおよびJKSベースのキーストア、ウォレットおよび証明書を管理できます。
この付録で、orapkiなど12cよりも前のツールから、12c (12.1.2)で提供されている証明書ツール、ウォレット管理ツールおよびSSL構成ツールへの移行方法について学習していきます。この付録の項目は次のとおりです。
|
関連項目: :
|
|
注意:
|
この項の項目は次のとおりです。
orapkiユーティリティは、公開鍵インフラストラクチャ(PKI)要素(ウォレット、証明書失効リストなど)をコマンドラインで管理できるようにするために提供されています。これにより、実行するタスクをスクリプトに組み込むことができます。これを使用して、PKIを保守するルーチン・タスクの多くを自動化できます。
このコマンドライン・ユーティリティを使用して、次のタスクを実行できます。
テスト用の署名付き証明書の作成
Oracleウォレットの管理
Oracleウォレットの作成と表示
証明書リクエストの追加と削除
証明書の追加と削除
信頼できる証明書の追加と削除
証明書失効リスト(CRL)の管理
証明書検証用ハッシュ値によるCRLの名前変更
orapkiを使用すると、証明書をDERフォーマットとPEMフォーマットの両方でインポートできます。
orapkiコマンドライン・ユーティリティの基本的な構文を次に示します。
orapki module command -parameter value
このコマンドでは、moduleをwallet (Oracleウォレット)、crl(証明書失効リスト)またはcert (PKIデジタル証明書)にできます。使用可能なコマンドは、使用するmoduleによって異なります。たとえば、walletを使用している場合、addコマンドを使用して証明書またはキーをウォレットに追加できます。次の例では、/private/lhale/cert.txtにあるユーザー証明書が、ORACLE_HOME/wallet/ewallet.p12にあるウォレットに追加されます。
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パラメータは、証明書リクエストへの署名に使用されるユーザー証明書と秘密鍵を含むウォレットを指定します。-validityパラメータは、現在の日付から数えてこの証明書が有効である日数を指定します。証明書と証明書リクエストの指定は、このコマンドでは必須です。
証明書を表示するには:
orapki cert display -cert certificate_location [-summary | -complete]
このコマンドを使用すると、orapkiを使用して作成したテスト証明書を表示できます。-summaryまたは-completeのいずれかを選択できます。これによりコマンドが表示するデータの詳細さが決まります。-summaryを選択すると、証明書とその有効期限が表示されます。-completeを選択すると、シリアル番号、公開鍵などの追加の証明書情報が表示されます。
次の各項では、orapkiコマンドライン・ユーティリティを使用してOracleウォレットの作成および管理を行うために使用される構文について説明します。これらのorapkiユーティリティのwalletモジュール・コマンドをスクリプトで使用して、ウォレット作成プロセスを自動化できます。
orapkiを使用した証明書と証明書リクエストのOracleウォレットからのエクスポート
|
注意:
|
|
関連項目: パスワードで保護されたウォレットまたは自動ログイン・ウォレットの作成方法の例は、ドキュメントID 1226654.1 FMW 11gにおけるORAPKIを使用したウォレットの作成方法(OTNナレッジ・ベースにあります)を参照してください。 |
Oracleウォレットを作成するには:
orapki wallet create -wallet wallet_location
このコマンドを使用すると、ウォレット・パスワードの入力と再入力を求めるプロンプトが表示されます。-walletで指定された場所にウォレットが作成されます。
自動ログインが有効なOracleウォレットを作成するには:
orapki wallet create -wallet wallet_location -auto_login
このコマンドを使用すると、自動ログインが有効なウォレットが作成されます。また、このコマンドは、既存のウォレットの自動ログインを有効にするためにも使用できます。wallet_locationにすでにウォレットが含まれている場合、そのウォレットの自動ログインが有効になります。自動ログイン機能を無効にするには、cwallet.ssoを削除します。
|
注意: 自動ログイン機能を有効にしたウォレットでは、 |
Oracleウォレットを表示するには:
orapki wallet display -wallet wallet_location
このコマンドを使用すると、ウォレットに含まれている証明書リクエスト、ユーザー証明書および信頼できる証明書が表示されます。
証明書リクエストをOracleウォレットに追加するには:
orapki wallet add -wallet wallet_location -dn user_dn -keysize 512|1024|2048|4096
このコマンドを使用すると、指定した識別名(user_dn)を持つユーザーのウォレットに証明書リクエストが追加されます。このリクエストでは、リクエストされた証明書のキー・サイズ(512、1024または2048ビット)も指定します。リクエストに署名するには、エクスポート・オプションを使用してそのリクエストをエクスポートします。第G.1.4.3項「orapkiを使用した証明書と証明書リクエストのOracleウォレットからのエクスポート」を参照してください。
信頼できる証明書をOracleウォレットに追加するには:
orapki wallet add -wallet wallet_location -trusted_cert -cert certificate_location
このコマンドを使用すると、指定した場所(-cert certificate_location)にある信頼できる証明書がウォレットに追加されます。ユーザー証明書を追加する前に、ユーザー証明書の証明書チェーンにあるすべての信頼できる証明書を追加する必要があります。そうしないと、ユーザー証明書を追加するコマンドは失敗します。
ルート証明書をOracleウォレットに追加するには:
orapki wallet add -wallet wallet_location -dn certificate_dn -keysize 512|1024|2048 -self_signed -validity number_of_days
このコマンドを使用すると、新しい自己署名(ルート)証明書が作成され、ウォレットに追加されます。-validityパラメータ(必須)は、現在の日付から数えてこの証明書が有効である日数を指定します。このルート証明書のキー・サイズ(-keysize)は、512、1024、2048または4096ビットに指定できます。
ユーザー証明書をOracleウォレットに追加するには:
orapki wallet add -wallet wallet_location -user_cert -cert certificate_location
このコマンドを使用すると、-certパラメータで指定された場所にあるユーザー証明書が、wallet_locationにあるOracleウォレットに追加されます。ユーザー証明書をウォレットに追加する前に、証明書チェーンを構成するすべての信頼できる証明書を追加する必要があります。ユーザー証明書を追加する前に、すべての信頼できる証明書がウォレットに追加されていない場合、ユーザー証明書の追加は失敗します。
証明書をOracleウォレットからエクスポートするには:
orapki wallet export -wallet wallet_location -dn certificate_dn -cert certificate_filename
このコマンドを使用すると、サブジェクトの識別名(-dn)を持つ証明書が、ウォレットから-certで指定されたファイルにエクスポートされます。
証明書リクエストをOracleウォレットからエクスポートするには:
orapki wallet export -wallet wallet_location -dn certificate_request_dn -request certificate_request_filename
このコマンドを使用すると、サブジェクトの識別名(-dn)を持つ証明書リクエストが、ウォレットから-requestで指定されたファイルにエクスポートされます。
CRLは、orapkiを使用して管理する必要があります。このユーティリティは、CRL発行者名のハッシュ値を作成して、システム内でCRLの場所を特定します。orapkiを使用しないと、Oracleサーバーは、CRLを探してPKIデジタル証明書を検証することができません。次の各項では、CRLについて、CRLの使用方法、およびorapkiを使用してCRLを管理する方法について説明します。
|
関連項目:
|
指定の証明書を指定のコンテキストで使用できるかどうかを判定するプロセスは、証明書の検証と呼ばれます。証明書の検証には、次の項目の判定が含まれます。
信頼できる認証局(CA)にデジタル署名された証明書があるかどうか。
証明書のデジタル署名が、証明書自体の別個に計算されたハッシュ値および証明書の署名者の(CAの)公開鍵に対応しているかどうか。
証明書が期限切れになっていないかどうか。
証明書が失効していないかどうか。
SSLネットワーク・レイヤーは、自動的に最初の3つの検証チェックを実行しますが、証明書が失効していないことを確認するには、証明書失効リスト(CRL)のチェックを構成する必要があります。CRLは、失効した証明書のリストを含む署名付きデータ構造体です。これは通常、元の証明書を発行したエンティティと同じエンティティによって発行され署名されます。
使用するトラスト・ポイントすべてについてCRLが必要です。トラスト・ポイントは、一定の信頼レベルで資格を与えられたサード・パーティ・アイデンティティからの信頼できる証明書です。通常、信頼する認証局はトラスト・ポイントと呼ばれます。
証明書失効ステータスは、ファイル・システム・ディレクトリにあるCRL、または証明書のCRL配布ポイント(CRL DP)の拡張子で指定された場所からダウンロードしたCRLに対してチェックされます。CRLをローカル・ファイル・システムまたはディレクトリに格納する場合、CRLを定期的に更新する必要があります。CRL DPを使用する場合、CRLは、対応する証明書が最初に使用されるときにダウンロードされます。
サーバーは、次の場所で(ここに示されている順番で)CRLを検索します。システムは、証明書のCAのDNと一致するCRLを検出すると、検索を停止します。
ローカル・ファイル・システム
システムは、まずsqlnet.oraファイルのSSL_CRL_FILEパラメータを確認し、それからSSL_CRL_PATHパラメータを確認します。システムは、これらの2つのパラメータが指定されていない場合、ウォレット・ロケーションで任意のCRLをチェックします。
注意: CRLをローカル・ファイル・システムに格納する場合、orapkiユーティリティを使用してCRLを定期的に更新する必要があります。第G.1.5.2.1項「証明書検証用ハッシュ値によるCRLの名前変更」を参照してください。
CRL DP
CAが、証明書が発行されたときのCRL DP X.509、バージョン3、証明書拡張子内の位置を指定すると、その証明書用の失効情報を含む適切なCRLがダウンロードされます。現在、Oracle Advanced Securityは、HTTPおよびLDAPを介したCRLのダウンロードをサポートしています。
|
注意:
|
証明書失効ステータスのチェックを有効にするには、まず、使用するCAから受信したCRLがシステムで使用できるフォームである(ハッシュ値で名前変更されている)こと、またはシステムで使用できる場所にある(ディレクトリにアップロードされている)ことを確認してください。Oracle Advanced Securityには、次のタスクを実行するために使用できるコマンドライン・ユーティリティ、orapkiがあります。
|
注意: CRLは、正常な検証を行うために、(期限切れになる前に)定期的に更新する必要があります。このタスクは、スクリプトで |
|
関連項目: LDAPコマンドライン・ツールおよびその構文については、Oracle Fusion Middleware Oracle Identity Managementリファレンスのコマンドライン・ツールの概要に関する項を参照してください。 |
システムは、証明書を検証するとき、証明書を作成したCAが発行するCRLを見つける必要があります。システムは、証明書の発行者名とCRLにある発行者名を照合して適切なCRLを検出します。
Oracle Net Managerの「証明書失効リスト・パス」フィールドにCRL格納場所を指定する(sqlnet.oraファイルのSSL_CRL_PATHパラメータを設定する)場合、orapkiユーティリティを使用して発行者名を表すハッシュ値を使用してCRLを名前変更します。ハッシュ値を作成すると、サーバーでCRLをロードできます。
UNIXシステムでは、orapkiによってCRLへのシンボリック・リンクが作成されます。Windowsシステムでは、CRLファイルのコピーが作成されます。どちらの場合も、orapkiによって作成されたシンボリック・リンクまたはコピーは、発行者名のハッシュ値を使用して名前が付けられます。その後、システムが証明書を検証するとき、同じハッシュ関数が使用されて、適切なCRLをロードできるようにリンク(またはコピー)の名前が計算されます。
ご使用のオペレーティング・システムに応じて、次のコマンドのいずれかを入力して、ファイル・システムに格納されているCRLの名前を変更します。
UNIXファイル・システムに格納されているCRLの名前を変更するには:
orapki crl hash -crl crl_filename [-wallet wallet_location] -symlink crl_directory [-summary]
Windowsファイル・システムに格納されているCRLの名前を変更するには:
orapki crl hash -crl crl_filename [-wallet wallet_location] -copy crl_directory [-summary]
このコマンドで、crl_filenameはCRLファイルの名前、wallet_locationはCRLを発行したCAの証明書を含むウォレットの場所、crl_directoryはCRLがあるディレクトリです。
-walletおよび-summaryの使用はオプションです。-walletを指定すると、CRLの名前を変更する前に、ツールによってCAの証明書に対するCRLの有効性が確認されます。-summaryオプションを指定すると、ツールによってCRL発行者名が表示されます。
この項では、次のorapkiコマンドについて説明します。
次の各項では、このコマンドについて説明します。
orapki cert create [-wallet wallet_location] -request certificate_request_location -cert certificate_location -validity number_of_days [-summary]
-walletパラメータは、証明書リクエストへの署名に使用されるユーザー証明書と秘密鍵を含むウォレットを指定します。
-requestパラメータ(必須)は、作成する証明書の証明書リクエストの場所を指定します。
-certパラメータ(必須)は、ツールが新しい署名付き証明書を配置するディレクトリの場所を指定します。
-validityパラメータ(必須)は、現在の日付から数えてこの証明書が有効である日数を指定します。
次の各項では、このコマンドについて説明します。
orapki crl hash -crl crl_filename|URL [-wallet wallet_location] [-symlink|-copy] crl_directory [-summary]
-crlパラメータは、CRLまたはCRLがあるURLを含むファイル名を指定します。
-walletパラメータ(オプション)は、CRLを発行した認証局(CA)の証明書を含むウォレットの場所を指定します。これを使用すると、CRLをディレクトリにアップロードする前に、ツールによってCAの証明書に対するCRLの有効性が確認されます。
オペレーティング・システムに応じて、-symlinkパラメータまたは-copyパラメータのいずれかを使用します。
UNIX: -symlinkを使用してcrl_directoryにCRLへのシンボリック・リンクを作成します。
Windows: -copyを使用してcrl_directoryにCRLのコピーを作成します。
-summaryパラメータ(オプション)を使用すると、ツールによってCRL発行者名が表示されます。
次の各項では、このコマンドについて説明します。
証明書リクエストを追加するには:
orapki wallet add -wallet wallet_location -dn user_dn -keysize 512|1024|2048
-walletパラメータは、証明書リクエストの追加先のウォレットの場所を指定します。
-dnパラメータは、証明書の所有者の識別名を指定します。
-keysizeパラメータは、証明書のキー・サイズを指定します。
リクエストに署名するには、エクスポート・オプションを使用してそのリクエストをエクスポートします。第G.1.6.12項「orapki wallet export」を参照してください。
信頼できる証明書を追加するには:
orapki wallet add -wallet wallet_location -trusted_cert -cert certificate_location
-trusted_certパラメータを使用すると、ツールによって、-certで指定された場所にある信頼できる証明書がウォレットに追加されます。
ルート証明書を追加するには:
orapki wallet add -wallet wallet_location -dn certificate_dn -keysize 512|1024|2048 -self_signed -valid_from [mm/dd/yyyy] -valid_until [mm/dd/yyyy] -validity number_of_days
-self_signedパラメータを使用すると、ツールによってルート証明書が作成されます。
-validityパラメータを使用して、現在の日付から数えてこのルート証明書が有効である日数を指定できます。
-valid_fromパラメータおよびvalid_untilパラメータを使用して、このルート証明書が有効である正確な日付範囲を指定できます。-validity number_of_daysのかわりに、この方法で有効期間を指定できます。
ユーザー証明書を追加するには:
orapki wallet add -wallet wallet_location -user_cert -cert certificate_location
-user_certパラメータを使用すると、ツールによって、-certパラメータで指定された場所にあるユーザー証明書がウォレットに追加されます。ユーザー証明書をウォレットに追加する前に、証明書チェーンを構成するすべての信頼できる証明書を追加する必要があります。ユーザー証明書を追加する前に、すべての信頼できる証明書がウォレットに追加されていない場合、ユーザー証明書の追加は失敗します。
証明書リクエストにサブジェクト・キー識別子の拡張子を追加するには:
orapki wallet add -wallet wallet_location -dn user_dn -keysize 512|1024|2048 -addext_ski
バージョン3の自己署名証明書をウォレットに追加するには:
orapki wallet add -wallet wallet_location -dn certificate_dn -keysize 512|1024|2048 -self_signed -validity number_of_days -addext_ski
次の各項では、このコマンドについて説明します。
orapki wallet export -wallet wallet_location -dn certificate_dn -cert certificate_filename
-walletパラメータは、証明書のエクスポート元のウォレットがあるディレクトリを指定します。
-dnパラメータは、証明書の識別名を指定します。
-certパラメータは、エクスポートされる証明書を含むファイルのパスおよびファイル名を指定します。
証明書リクエストをOracleウォレットからエクスポートするには:
orapki wallet export -wallet wallet_location -dn certificate_request_dn -request certificate_request_filename
-requestパラメータは、エクスポートされる証明書リクエストを含むファイルのパスおよびファイル名を指定します。
表G-1に、OracleウォレットおよびCRL用にorapkiユーティリティが提供する機能と、12c (12.1.2)における同等のコマンドおよびオプションを示します。
表G-1 ウォレットおよびCRL用のorapki機能のマッピング
| orapki機能 | 11gR1における実装方法 | 注意 |
|---|---|---|
|
標準PKCS#12ウォレットの作成 |
WLST createWallet() |
パスワードで保護される自動ログイン・ウォレットを管理するには、空でないパスワード値を指定します。単なる自動ログイン・ウォレットを管理するには、空のパスワード値(つまり'')を指定します。 |
|
PKCS#11ウォレットの作成 |
サポート対象外 |
orapkiコマンドライン・ツールを使用します。 |
|
LDAPディレクトリへのウォレットのアップロード |
サポート対象外 |
orapkiコマンドライン・ツールを使用します。 |
|
LDAPディレクトリからのウォレットのダウンロード |
サポート対象外 |
orapkiコマンドライン・ツールを使用します。 |
|
ウォレットの削除 |
WLST deleteWallet() |
|
|
ウォレット・パスワードの変更 |
WLST changeWalletPassword() |
当然のことですが、パスワードは、パスワードで保護されたウォレットに対してのみ変更できます。 |
|
自動ログインの有効化 |
自動ログイン・ウォレットは、パスワードで保護されたウォレットではすべて自動的に作成されます。 |
|
|
ローカル・マシン上でのみ動作する自動ログイン・ウォレットの有効化 |
サポート対象外 |
orapkiコマンドライン・ツールを使用します。 |
|
CRLの作成、取消し、ハッシュ、検証、アップロード、一覧表示、表示および削除 |
サポート対象外 |
orapkiコマンドライン・ツールを使用します。 |
表G-2に、証明書用にorapkiユーティリティが提供する機能と、12c (12.1.2)における同等のコマンドまたはオプションを示します。
表G-2 証明書用のorapki機能のマッピング
| orapki機能 | 11gR1のWLSTにおける実装方法 | 注意 |
|---|---|---|
|
証明書リクエストの追加 |
addCertificateRequest() |
|
|
自己署名証明書の追加 |
addSelfSignedCertificate() |
|
|
ウォレットのすべてのエントリの一覧表示 |
listWalletObjects() |
有効なタイプ値を指定します(「CertificateRequest」、「Certificate」または「TrustedCertificate」)。 |
|
ユーザー証明書のインポート |
importWalletObject() |
タイプとして「Certificate」と入力します。 |
|
信頼できる証明書のインポート |
importWalletObject() |
タイプとして「TrustedCertificate」と入力します。 |
|
証明書リクエストの削除 |
removeWalletObject() |
タイプとして「CertificateRequest」と入力します。 |
|
ユーザー証明書の削除 |
removeWalletObject() |
タイプとして「Certificate」と入力します。 |
|
信頼できる証明書の削除 |
removeWalletObject() |
タイプとして「TrustedCertificate」と入力します。 |
|
すべての信頼できる証明書の削除 |
removeWalletObject() |
タイプとして「TrustedAll」と入力します。 |
|
ユーザー証明書のエクスポート |
exportKeyStoreObject() |
タイプとして「Certificate」と入力します。 |
|
証明書リクエストのエクスポート |
exportWalletObject() |
タイプとして「CertificateRequest」と入力します。 |
|
信頼できる証明書のエクスポート |
exportWalletObject() |
タイプとして「TrustedCertificate」と入力します。 |
|
証明書チェーンのエクスポート |
exportWalletObject() |
タイプとして「CertificateChain」と入力します。 |
|
ウォレットへのPKCS#7証明書チェーンのインポート |
importWalletObject() |
タイプとして「TrustedChain」と入力します。 |
表G-3に、SSL構成ツールにより提供される機能を示します。
表G-3 SSL構成ツールと同等の機能
| 構成機能: | 12c (12.1.2)でのSSL構成 |
|---|---|
|
ウォレット管理のサポート |
SSL構成の他に、Oracleウォレット、JKSキーストアおよびKSSキーストアの管理をサポートします。 |
|
SSLでサポートされるスタンドアロン・タイプ |
スタンドアロンSSL構成でサポートされるOracle HTTP Server |
|
インタフェースのタイプ |
コマンドライン・インタフェース(WLST)とグラフィカル・インタフェース(Fusion Middleware Control)の両方が提供されます。 |
|
構成ファイルの要否 |
構成ファイルは、WLSTコマンドではオプションです。ファイルが提供されない場合、SSL属性についてはデフォルト値が使用されます。 |
|
サポートされる層 |
Web層とデータ層の両方に対してSSL構成がサポートされます。 |
|
ローカル/リモート管理 |
コンポーネントのリモート管理が可能です。 |