第14章 証明書/キー暗号トークンの管理
この章では、さまざまなシナリオの証明書のインポートおよび検証方法など、暗号化トークンで証明書/鍵のデータベースを管理する方法を説明します。
- NSS ソフトトークンの詳細は、「NSS ソフトトークン (内部トークン)」 を参照してください。
- HSM の詳細は、「ハードウェアセキュリティーモジュール (HSM、外部トークン)」 を参照してください。
14.1. certutil
および PKICertImport
certutil
コマンドは、Network Security Services (NSS) によって提供されます。certutil
は、証明書の検証およびインポートに使用されます。ただし、certutil
の使用方法に関する基本的な概要を以下に示します。ただし、PKICertImport
は、証明書を安全に検証およびインポートするために選択するためのラッパースクリプトです。これには、certutil
を使用して、複数のコマンドの呼び出しが必要で、正しい使用方法はこのドキュメントの範囲外です。
14.1.1. certutil
の基本的な使用方法
certutil [command] [opt][options]
各 certutil
呼び出しでは、通常は大文字で表されるコマンドフラグと、コマンドの動作を制御する一連のオプションを使用します。オプションで値を指定する場合、その値の名前は "<" と ">" で囲みます。
14.1.2. PKICertImport の基本的な使用方法
PKICertImport [opt][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
の結果として、各証明書のニックネームとその信頼情報が表示されます。以下に例を示します。
証明書のニックネーム | 信頼属性 (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 つまたは複数追加できます。使用する信頼文字は、c
、C
および T
です。
-
c
は、この証明書が認証局 (CA) である必要があることを示しています。 -
C
は、サーバー証明書に署名するための信頼できる認証局であることを示しています (C
は小文字のc
であるため、両方を指定する必要はありません)。 -
T
は、この証明書が、クライアント証明書に署名するための信頼できる機関であることを示しています (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
コマンドを実行します。