第10章 証明書/キー暗号トークンの管理
本章では、さまざまなシナリオの証明書のインポートおよび検証方法など、暗号化トークンで証明書/鍵のデータベースを管理する方法を説明します。
暗号トークンについて
NSS ソフトトークンの詳細は、「NSS Soft Token (内部トークン)」を参照してください。
HSM の詳細は、「ハードウェアセキュリティーモジュール (HSM、外部トークン)」を参照してください。
10.1. certutil および PKICertImport
certutil コマンドは、Network Security Services (NSS)によって提供されます。certutil は、証明書の検証およびインポートに使用されます。ただし、certutil の使用方法に関する基本的な概要を以下に示します。ただし、PKICertImport は、証明書を安全に検証およびインポートするために選択できるラッパースクリプトです。これには、certutil を使用して複数のコマンドの呼び出しが必要で、正しい使用方法は本書の範囲外です。
10.1.1. certutil の基本的な使用方法
certutil [command]
[options]
各 certutil 呼び出しは、通常は大文字で表されるコマンドフラグと、コマンドの動作を制御する一連のオプションを取ります。オプションが値を取る場合、その値の名前は<と>間に付けられます。
10.1.2. PKICertImport の基本的な使用方法
PKICertImport
[options]
各 PKICertImport 呼び出しは、指定された証明書を検証およびインポートする一連のオプションを取ります。certutil の幅広いユースケースとは異なり、PKICertImport は、証明書を安全にインポートおよび検証することのみに重点を置いています。利用可能なオプションの詳細は、「一般的な certutil および PKICertImport オプション」を参照してください。
注記
PKICertImport は、実行中に NSS DB や HSM のパスワードを複数回要求します。これは、PKICertImport と NSS DB との対話を複数回行う必要があるためです。NSS DB パスワードを繰り返し入力しなくてもよいように、-f <filename> でパスワードファイルを指定します。完了したら、パスワードファイルを必ず削除してください。
10.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 の結果として、各証明書のニックネームとその信頼情報が表示されます。以下に例を示します。
証明書のニックネーム
|
Trust Attributes |
---|---|
caSigningCert pki-ca1
|
CT、C、C
|
注記
certutil -L で表示される信頼属性は、-t オプションで指定したものに対応します。
certutil -L はデータベースを変更しないため、必要な回数だけ安全に実行できます。
10.1.4. 一般的な certutil および PKICertImport オプション
以下の手順に従って、値は特定のデプロイメントシナリオに適し、正しい値であることを確認します。これらのオプションの多くは、PKICertImport でも利用できます。
-n <nickname>
-n <nickname> オプションは、 証明書のニックネームを指定します。これは任意のテキストを指定でき、証明書への参照としてのみ使用されます。一意である必要があります。
設定に応じて、この値を更新してください。
-d <directory>
-d <directory> オプションは、 使用中の NSS DB ディレクトリーへのパスを指定します。通常、このディレクトリーはすでに存在し、.を使用して現在のディレクトリーを参照します。
設定に応じて、この値を更新してください。
-t <trust>
-t <trust> オプションは、 証明書の信頼レベルを指定します。
信頼には、以下の 3 つのカテゴリーがあります。
- TLS の信頼
- メールの信頼
- オブジェクト署名の信頼
各信頼の位置には、信頼のレベルを指定する信頼文字を 1 つまたは複数追加できます。以下の信頼文字は、c、C、および T です。
- C は、この証明書が認証局(CA)である必要があります。
- C は、サーバー証明書に署名するための信頼できる認証局であることを示しています(C は小文字の c であるため、両方を指定する必要はありません)。
- T は、この証明書がクライアント証明書に署名するための信頼できる認証局であることを示しています(は小文字の c であるため、T と cの両方を指定する必要はありません)。
各位置の信頼フラグを指定するには、文字をコンマで区切ります。たとえば、オプション -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 コマンドを実行します。