16.6. 証明書データベースの管理

各 Certificate System インスタンスには、内部トークンで維持される証明書データベースがあります。このデータベースには、Certificate System インスタンスにインストールされているサブシステムに属する証明書と、サブシステムが受信する証明書の検証に使用する各種 CA 証明書が含まれます。
外部トークンを使用してキーペアを生成および保存する場合でも、Certificate System は常に、信頼できる CA 証明書と信頼できない CA 証明書のリストを内部トークンに保持します。
本セクションでは、Certificate System ウィンドウを使用して、証明書データベースの内容を表示する方法、不要な証明書を削除する方法、およびデータベースにインストールされている CA 証明書の信頼設定を変更する方法を説明します。データベースに証明書を追加する方法は、「証明書システムデータベースでの証明書のインストール」 を参照してください。
注記
Certificate System コマンドラインユーティリティー certutil は、信頼設定を編集し、証明書を追加または削除して、証明書データベースを管理するのに使用できます。このツールの詳細は、http://www.mozilla.org/projects/security/pki/nss/tools/ を参照してください。
管理者は、証明書データベースの内容を定期的にチェックして、不要な CA 証明書が含まれていないことを確認する必要があります。たとえば、データベースに PKI セットアップ内で信頼されるべきではない CA 証明書が含まれている場合は、それらを削除します。

16.6.1. 証明書システムデータベースでの証明書のインストール

サブシステムに対して新しいサーバー証明書が発行された場合は、そのサブシステムデータベースにインストールする必要があります。さらに、ユーザー証明書およびエージェント証明書をサブシステムデータベースにインストールする必要があります。証明書が外部 CA により発行される場合は、通常、対応する CA 証明書または証明書チェーンをインストールする必要があります。
証明書は、Console の Certificate Setup Wizard を使用するか、または certutil ユーティリティーを使用してサブシステム証明書データベースにインストールできます。

16.6.1.1. コンソールを使用した証明書のインストール

Certificate Setup Wizard は、Certificate System インスタンスが使用する内部トークンまたは外部トークンのいずれかに以下の証明書をインストールまたはインポートできます。
  • Certificate System サブシステムが使用する証明書のいずれか
  • 外部 CA またはその他の Certificate System CA からの信頼済み CA 証明書
  • 証明書チェーン
証明書チェーンには、証明書のコレクション (サブジェクト証明書、信頼されたルート CA 証明書、およびサブジェクト証明書を信頼されたルートにリンクするために必要な中間 CA 証明書) が含まれます。ただし、ウィザードがインポートする証明書チェーンには、CA 証明書のみを含める必要があります。どの証明書もユーザー証明書にすることはできません。
証明書チェーンでは、チェーンの各証明書は個別の DER でエンコードされたオブジェクトとしてエンコードされます。ウィザードが証明書チェーンをインポートすると、これらのオブジェクトが次々にインポートされ、チェーンの最後の証明書 (ルート CA 証明書である場合とそうでない場合があります) までインポートされます。チェーン内の証明書のいずれかがローカル証明書データベースにすでにインストールされている場合、ウィザードは既存の証明書をチェーン内の証明書に置き換えます。チェーンに中間 CA 証明書が含まれる場合、ウィザードは 信頼されていない CA 証明書として証明書データベースに追加します。
サブシステムコンソールは、同じウィザードを使用して証明書と証明書チェーンをインストールします。ローカルセキュリティーデータベースに証明書をインストールするには、以下の手順を実施します。
  1. コンソールを開きます。
    pkiconsole https://server.example.com:secure_port/subsystem_type
  2. Configuration タブで、左側のナビゲーションツリーから System Keys and Certificates を選択します。
  3. サブシステムのタイプと証明書のタイプに応じて、証明書をインストールできる 2 つのタブがあります。
    • CA 証明書 タブは、CA 証明書および証明書チェーンのインストールに使用されます。Certificate Manager の場合、このタブはサードパーティーの CA 証明書またはその他の Certificate System CA 証明書に使用されます。すべてのローカル CA 証明書は、Local Certificates タブにインストールされます。その他のサブシステムでは、すべての CA 証明書およびチェーンがこのタブでインストールされます。
    • Local Certificates タブには、すべてのサーバー証明書、サブシステム証明書、および OCSP 署名や KRA トランスポートなどのローカル証明書がインストールされます。
    該当するタブを選択します。
  4. Local Certificates タブで証明書をインストールするには、Add/Renew をクリックします。CA Certificates タブに証明書をインストールするには、Add をクリックします。いずれも Certificate Setup Wizard を開きます。
    1. ウィザードが開いたら、Install a certificate ラジオボタンを選択し、Next をクリックします。
    2. インストールする証明書のタイプを選択します。ドロップダウンメニューのオプションは、サブシステムのタイプに応じて、証明書の作成に使用できるオプションと同じですが、クロスペア証明書をインストールするための追加オプションがあります。
    3. -----BEGIN CERTIFICATE----- および -----END CERTIFICATE----- を含む証明書の本文にテキストエリアに貼り付けるか、絶対ファイルの場所を指定します。これはローカルファイルでなければなりません。
      証明書は以下のようになります。
      -----BEGIN CERTIFICATE-----
      MIICKzCCAZSgAwIBAgIBAzANgkqkiG9w0BAQQFADA3MQswCQYDVQQGEw
      JVUzERMA8GA1UEChMITmV0c2NhcGUxFTATBgNVBAsTDFN1cHJpeWEncy
      BDQTAeFw05NzEwMTgwMTM2MjVaFw05OTEwMTgwMTM2MjVaMEgxCzAJBg
      NVBAYTAlVTMREwDwYDVQQKEwhOZXRzY2FwZTENMAsGA1UECxMEUHawcz
      EXMBUGA1UEAxMOU3Vwcml5YSBTaGV0dHkwgZ8wDQYJKoZIhdfNAQEBBQ
      ADgY0AMIGJAoGBAMr6eZiPGfjX3uRJgEjmKiqG7SdATYzBcABu1AVyd7
      chRFOGD3wNktbf6hRo6EAmM5R1Askzf8AW7LiQZBcrXpc0k4du+2j6xJ
      u2MPm8WKuMOTuvzpo+SGXelmHVChEqooCwfdiZywyZNmgaMa2MS6pUkf
      QVAgMBAAGjNjA0MBEGCWCGSAGG+EIBAQQEAwIAgD
      -----END CERTIFICATE-----
  5. ウィザードに、証明書の詳細が表示されます。指紋を確認して、これが正しい証明書であることを確認するか、Back ボタンをクリックして戻って別のボタンを送信します。証明書のニックネームを指定します。
    このウィザードは、証明書をインストールします。
  6. 証明書に署名した CA はサブシステムによって信頼される必要があります。この CA の証明書がサブシステムの証明書データベース (内部または外部) に存在し、信頼されていることを確認してください。
    CA 証明書がリストされていない場合は、信頼できる CA として証明書を証明書データベースに追加します。CA の証明書がリストされているが信頼されていない場合は、「CA 証明書の信頼設定の変更」 に示すように、信頼設定を信頼済みに変更します。
    Certificate System 証明書データベースに保存されていない CA によって発行された証明書をインストールする場合は、その CA の証明書チェーンをデータベースに追加します。CA チェーンをデータベースに追加するには、CA チェーンをテキストファイルにコピーし、ウィザードを再起動して、CA チェーンをインストールします。

16.6.1.2. certutil を使用した証明書のインストール

certutil を使用して Certificate System インスタンスのセキュリティーデータベースにサブシステム証明書をインストールするには、以下を行います。
  1. サブシステムのセキュリティーデータベースディレクトリーを開きます。
    cd /var/lib/pki/instance_name/alias
    
  2. -A を指定して certutil コマンドを実行して、証明書と、CA が発行した証明書が含まれるファイルを示す -i を追加しします。
    certutil -A -n cert-name -t trustargs
       -d . -a -i certificate_file
    注記
    Certificate System インスタンスの証明書およびキーが HSM に保存されている場合は、-h オプションを使用してトークン名を指定します。
    以下に例を示します。
    certutil -A -n "ServerCert cert-instance_name" -t u,u,u -d . -a -i /tmp/example.cert
    
certuil コマンドの使用方法は、http://www.mozilla.org/projects/security/pki/nss/tools/certutil.html を参照してください。

16.6.1.3. CA 証明書のチェーンについて

証明書をサポートするクライアントまたはサーバーソフトウェアは、証明書データベースに信頼できる CA 証明書のコレクションを保持します。これらの CA 証明書は、ソフトウェアが検証できるその他の証明書を決定します。最も単純なケースでは、ソフトウェアは、証明書を持っている CA の 1 つによって発行された証明書のみを検証できます。信頼できる CA 証明書を CA 証明書のチェーンの一部にすることもできます。各証明書は、証明書階層の上位にある CA によって発行されます。
チェーンの最初の証明書は、コンテキスト固有の方法で処理されます。コンテキスト固有の方法は、インポート方法によって異なります。Mozilla Firefox の場合、この処理は、ダウンロードされるオブジェクトで使用される MIME コンテンツタイプによって異なります。Red Hat サーバーでは、サーバー管理インターフェイスで選択したオプションによって異なります。
後続の証明書はすべて同じ扱われます。証明書の Netscape Certificate Type 証明書拡張に SSL-CA ビットが含まれていて、ローカル証明書データベースにまだ存在しない場合、それらは信頼されていない CA として追加されます。チェーンのどこかに信頼できる CA が存在する限り、証明書チェーンの検証に使用できます。

16.6.2. データベースコンテンツの表示

サブシステム証明書データベースに格納されている証明書 cert8.db は、サブシステム管理コンソールから表示できます。または、certutil ユーティリティーを使用して一覧表示できます。certutil は、TPS サブシステムは管理コンソールを使用しないため、TPS 証明書を表示するのに使用する必要があります。
注記
cert8.db に一覧表示されている証明書データベースは、サブシステム操作に使用されるサブシステム証明書です。ユーザー証明書は、LDAP 内部データベースのユーザーエントリーと共に保存されます。

16.6.2.1. コンソールを使用したデータベースコンテンツの表示

管理コンソールを使用してデータベースの内容を表示するには、以下を行います。
  1. サブシステムコンソールを開きます。
    pkiconsole https://server.example.com:secure_port/subsystem_type
  2. Configuration タブで、左側のナビゲーションツリーから System Keys and Certificates を選択します。
  3. CA Certificates および Local Certificates の 2 つのタブがあります。ここには、さまざまな種類の証明書が一覧表示されます。
    • CA 証明書 には、Entrust や Verisign などのサードパーティー CA によって発行された証明書や、外部の Certificate System Certificate Manager など、対応する秘密鍵の資料が利用できない CA 証明書が一覧表示されます。
    • ローカル証明書 には、KRA トランスポート証明書や OCSP 署名証明書など、Certificate System サブシステムインスタンスによって保持されている証明書が一覧表示されます。

    図16.2 Certificate Database タブ

    Certificate Database タブ
  4. Certificate Database Management テーブルには、サブシステムにインストールされている証明書が一覧表示されます。証明書ごとに、以下の情報が提供されます。
    • Certificate Name
    • Serial Number
    • Issuer Names。この証明書の発行者の共通名 (cn) です。
    • Token Name (証明書を保持する暗号化トークンの名前)。データベースに保存されている証明書の場合、これは internal になります。
証明書に関する詳細情報を表示するには、証明書を選択して View をクリックします。これにより、証明書のシリアル番号、有効期間、サブジェクト名、発行者名、および証明書のフィンガープリントを表示するウィンドウが開きます。

16.6.2.2. certutil を使用したデータベースコンテンツの表示

certutil を使用してサブシステムデータベース内の証明書を表示するには、インスタンスの証明書データベースディレクトリーを開き、-L オプションを付けて certutil をインストールします。以下に例を示します。
cd /var/lib/pki/instance_name/alias

certutil -L -d .

Certificate Authority - Example Domain    CT,c,
subsystemCert cert-instance name          u,u,u
Server-Cert cert-instance_name            u,u,u
certutil を使用してサブシステムデータベースに保存されている鍵を表示するには、-K オプションを指定して certutil を実行します。以下に例を示します。
cd /var/lib/pki/instance_name/alias

certutil -K -d .

Enter Password or Pin for "NSS Certificate DB":
<0> subsystemCert cert-instance_name
<1>
<2> Server-Cert cert-instance_name
certuil コマンドの使用方法は、http://www.mozilla.org/projects/security/pki/nss/tools/certutil.html を参照してください。

16.6.3. データベースからの証明書の削除

不要な証明書を削除すると、証明書データベースのサイズが減少します。
注記
証明書データベースから CA 証明書を削除するときは、中間 CA 証明書 を削除しないように注意してください。これにより、サブシステムが信頼できる CA 証明書にチェーンアップするのに役立ちます。不明な場合は、データベースの証明書を 信頼されていない CA 証明書として残します。「CA 証明書の信頼設定の変更」 を参照してください。

16.6.3.1. コンソールを使用した証明書の削除

コンソールから証明書を削除するには、以下の手順を実施します。
  1. サブシステムコンソールを開きます。
    pkiconsole https://server.example.com:secure_port/subsystem_type
  2. Configuration タブで、左側のナビゲーションツリーから System Keys and Certificates を選択します。
  3. 削除する証明書を選択して、Delete をクリックします。
  4. プロンプトが表示されたら、削除を確定します。

16.6.3.2. certutil を使用した証明書の削除

certutil を使用してデータベースから証明書を削除するには、以下を実行します。
  1. インスタンスの証明書データベースディレクトリーを開きます。
    /var/lib/pki/instance_name/alias
    
  2. -L オプションを使用して certutil を実行し、データベースの証明書を一覧表示します。以下に例を示します。
    certutil -L -d .
    
    Certificate Authority - Example Domain    CT,c,
    subsystemCert cert-instance_name          u,u,u
    Server-Cert cert-instance_name            u,u,u
    
  3. -D オプションを指定して certutil を実行し、証明書を削除します。
    certutil -D -d . -n certificate_nickname
    以下に例を示します。
    certutil -D -d . -n "ServerCert cert-instance_name"
  4. 証明書を再度一覧表示し、証明書が削除されたことを確認します。
    certutil -L -d .
    
    Certificate Authority - Example Domain    CT,c,
    subsystemCert cert-instance_name          u,u,u
    
certuil コマンドの使用方法は、http://www.mozilla.org/projects/security/pki/nss/tools/certutil.html を参照してください。