第14章 証明書/キー暗号トークンの管理

本章では、さまざまなシナリオの証明書のインポートおよび検証方法など、暗号化トークンで証明書/鍵のデータベースを管理する方法を説明します。

暗号トークンについて

NSS ソフトトークンの詳細は、「NSS Soft Token (内部トークン)」を参照してください。

14.1. certutil および PKICertImport

certutil コマンドは、Network Security Services (NSS) によって提供されます。certutil は、証明書の検証およびインポートに使用されます。ただし、certutil の使用方法に関する基本的な概要を以下に示します。ただし、PKICertImport は、証明書を安全に検証およびインポートするために選択するためのラッパースクリプトです。これには、certutil を使用して、複数のコマンドの呼び出しが必要で、正しい使用方法は本書の範囲外です。

14.1.1. certutil の基本的な使用法

certutil [command] [options]
certutil 呼び出しはコマンドフラグを取ります。通常は大文字で表されます。また、コマンドの動作を制御する一連のオプションを利用できます。オプションが値を取る場合、その値の名前は<と>間に付けられます。

14.1.2. PKICertImport の基本的な使用方法

PKICertImport [options]
PKICertImport 呼び出しは、指定された証明書を検証およびインポートする一連のオプションを取ります。certutil の広範なユースケースとは異なり、PKICertImport は、証明書を安全にインポートおよび検証することのみに重点を置いています。利用可能なオプションの詳細は、「一般的な certutil および PKICertImport オプション」を参照してください。
注記
PKICertImport は、実行中に NSS DB または HSM のパスワードを複数回要求します。これは、PKICertImport と NSS DB との対話を複数回使用する必要があるためです。NSS DB パスワードを繰り返し入力しなくてもよいように、-f <filename> でパスワードファイルを指定します。完了したら、パスワードファイルを必ず削除してください。

14.1.3. certutil の一般的なコマンド

以下のコマンドは certutil 固有のもので、いくつかの一般的なコマンドの概要を示します。PKICertImport は、これらのコマンドフラグと互換性がなく、これらのコマンドフラグも必要ありません。

certutil -A

-A コマンドは、証明書の追加を示しています。インポートするには証明書 (-i)、その証明書のニックネーム (-n)、および証明書の一連の信頼フラグ (-t) が必要です。

certutil -V

-V コマンドは、証明書の検証を示しています。検証には、証明書のニックネーム (-n) と、実行する検証 (-u) のタイプが必要です。

certutil -D

-D コマンドは、証明書の削除を示しています。削除する証明書のニックネーム (-n) が必要です。
証明書の公開鍵部分のみが削除され、秘密鍵が存在する場合は削除されないことに注意してください。

certutil -M

-M コマンドは、証明書の変更を示しています。変更する証明書ニックネーム (-n) と、証明書を提供する一連の信頼フラグ (-t) が必要です。

certutil -L

-L コマンドは、証明書またはすべての証明書へのリストを示しています。ニックネームオプション (-n) を指定すると、その証明書に関する詳細情報が表示されます。それ以外の場合は、存在するすべての証明書に関する一般的な情報が一覧表示されます。
certutil -L の結果として、各証明書のニックネームとその信頼情報が表示されます。以下に例を示します。

表14.1 証明書のニックネームと信頼情報

証明書のニックネーム

Trust Attributes
SSL, S/MIME, JAR/XPI

caSigningCert pki-ca1
CT、C、C
注記
certutil -L で表示される信頼属性は、-t オプションで指定した内容に対応します。
certutil -L はデータベースを変更しないため、必要な回数だけ安全に実行できます。

14.1.4. 一般的な certutil および PKICertImport オプション

以下の手順に従って、値は特定のデプロイメントシナリオに適し、正しい値であることを確認します。これらのオプションは PKICertImport でも利用できます。

-n <nickname>

-n <nickname> オプションは、証明書のニックネームを指定します。これは任意のテキストを指定でき、証明書への参照としてのみ使用されます。一意である必要があります。
設定に応じて、この値を更新してください。

-d <directory>

-d <directory> オプションは、使用中の NSS DB ディレクトリーへのパスを指定します。通常、このディレクトリーはすでに存在し、.を使用して現在のディレクトリーを参照します。
設定に応じて、この値を更新してください。

-t <trust>

-t <trust> オプションは、証明書の信頼レベルを指定します。
信頼には、以下の 3 つのカテゴリーがあります。
  • TLS の信頼
  • メールの信頼
  • オブジェクト署名の信頼
各信頼の位置には、信頼のレベルを指定する信頼文字を 1 つまたは複数追加できます。以下のトラスト文字は、cC および T です。
  • c は、この証明書が認証局 (CA) である必要があります。
  • C は、サーバー証明書に署名するための信頼できる認証局であることを示しています (C は小文字の c であるため、両方を指定する必要はありません)。
  • T は、この証明書が、クライアント証明書に署名するための信頼できる機関であることを示しています (T は小文字の c であるため、Tc の両方を指定する必要はありません)。
各位置の信頼フラグを指定するには、文字をコンマで区切ります。たとえば、オプション -t CT,C,c は、クライアントとサーバーの TLS 証明書への署名、サーバーの電子メール証明書 (S/MIME) への署名に信頼されており、オブジェクトの署名に有効な CA (信頼されていませんが) であることを意味します。
  • これにより、この証明書が別の証明書に署名し、それがオブジェクト署名に使用されると、その証明書が無効になります。
信頼なし (または信頼の欠如) は、-t ,, を使用して指定できます。
データベース内のすべての証明書のトラストレベルを表示するには、以下を実行します。
  • certutil -L -d
  • 各証明書のニックネームがリスト表示され、行の最後に信頼フラグが指定されます。
-h オプションの HSM に関する注記を参照してください。
信頼レベルは、certutil の man ページで指定されていることに注意してください。このドキュメントを参照するには、certutil が正しくインストールされているシステムで man certutil コマンドを実行します。

-h <HSM>

-h <HSM> オプションは、操作を実行する HSM の名前を指定します。
HSM は信頼を保管できないため、-h オプションは、-t オプションと互換性がありません。信頼を保存できるのは NSS DB だけなので、-h <HSM> と一緒に certutil -A コマンドや certutil -M コマンドを使用しても失敗します。代わりに、-h オプションなしで、別の certutil -M コマンドで必要な信頼レベルを指定します。
設定に応じて、この値を更新してください。

-e

-e オプションは、certutil -V コマンドとともに使用する場合に、署名の有効性もチェックされるように指定します。PKICertImport は、証明書署名の検証を常に実行し、-e オプションを理解しません。

-a

-a オプションは、問題のキーが PEM (ASCII) 形式であることを指定します。

-i <certificate>

-i <certificate> オプションは、証明書へのパスを指定します。これは、インポートする証明書へのパスを指定するために certutil -A コマンドで使用されます。
設定に応じて、この値を更新してください。

-u <usage>

-u <usage> オプションは、certutil -V コマンドと併用する際に、検証する証明書の使用を指定します。
次のセクションで参照されるいくつかの使用法の文字があります。
  • -u C は、クライアントの TLS 証明書検証を表します。これは証明書を許可しますが、有効期限と署名を確認することに注意してください。
  • -u V は、サーバーの TLS 証明書検証を表します。これにより CA 証明書が拒否され、有効期限と署名を確認することに注意してください。
  • -u L は、CA TLS 証明書の検証に使用します。これにより信頼フラグが検証され (c が存在するか確認)、鍵の使用方法を確認して、キーが CA キーであることを確認します。これは、有効期限および署名も確認します。
  • -u O は、OCSP ステータスレスポンダー証明書を検証することを表します。これにより、期限切れと署名を確認することに注意してください。
  • -u J オブジェクト署名証明書の検証を表します。これにより、期限切れと署名を確認することに注意してください。
誤った使用方法オプションが指定されているり、証明書の信頼フラグが正しくない場合 (CA TLS 証明書の c フラグがないなど)、certutil -V は誤った結果となります。
注記
使用方法の詳細情報は、certutil の man ページに記載されています。このドキュメントを参照するには、certutil が正しくインストールされているシステムで man certutil コマンドを実行します。