10.4. ハードウェアセキュリティーモジュール
このセクションでは、証明書を検出し、表示し、ハードウェア暗号化モジュール (HSM) にインポートする方法を説明します。
10.4.1. トークンの検出 リンクのコピーリンクがクリップボードにコピーされました!
Certificate System をインストールしたら、トークンを検出できるかどうかを確認するには、TokenInfo
ユーティリティーを使用して、サブシステムインスタンスの エイリアス
ディレクトリーを指定します。このツールは、Certificate System パッケージをインストールすると使用できます。
以下に例を示します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow このユーティリティーは、Certificate System にインストールされたトークンだけでなく、Certificate System で検出できるすべてのトークンを返します。
10.4.2. トークンの表示 リンクのコピーリンクがクリップボードにコピーされました!
Certificate System のインストール後にトークンのリストを表示するには、modutil
ユーティリティーを使用します。
インスタンスの alias ディレクトリーに移動します。以下に例を示します。
cd /var/lib/pki/pki-tomcat/alias
# cd /var/lib/pki/pki-tomcat/alias
Copy to Clipboard Copied! Toggle word wrap Toggle overflow modutil
ツールを使用して、インストールされている PKCS #11 モジュールに関する情報と、対応するトークンに関する情報を表示します。modutil -dbdir . -nocertdb -list
# modutil -dbdir . -nocertdb -list
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
10.4.3. HSM への証明書のインポート リンクのコピーリンクがクリップボードにコピーされました!
次に示す手順では、CSR の作成プロセスと同じ HSM トークンでキーが生成された、新しく発行された証明書 (TLS サーバー証明書の新規作成時など) を取得した後、証明書を HSM にインポートする方法を説明します。
Certificate System サーバーの場合、通常 pkispawn
はインストール中にすべてのシステム証明書の作成とインポートを実行します。しかし、たとえばシステム証明書の 1 つを置き換える必要がある場合などにもこの手順は役立ちます。
ここでは、HSM にインポートする 4 種類の証明書の例を示します。
- サーバー証明書
- クライアント証明書
- オブジェクト署名証明書
- OCSP 応答署名証明書
開始する前に、ディレクトリーを nssdb に変更します。
cd /path/to/nssdb
# cd /path/to/nssdb
以下に例を示します。
cd /var/lib/pki/pki-ca/alias
# cd /var/lib/pki/pki-ca/alias
これらの手順の実行中に Web サービスがオフラインになり (停止、無効化など) し、他のプロセス (ブラウザーなど) による nssdb への同時アクセスがないことを確認します。これにより、nssdb が破損したり、これらの証明書の使用が不適切になる場合があります。
ルート証明書をインポートして信頼していない場合は、「ルート証明書のインポート」 を参照してください。中間証明書をインポートおよび検証していない場合は、「中間証明書チェーンのインポート」 を参照してください。
従う手順セットは、問題の証明書の使用により異なります。
- すべての PKI サブスキームの TLS サーバー証明書は、サーバー証明書の手順 に従います。
- サブシステムの監査署名証明書は、以下の手順に従って オブジェクト署名証明書 を検証します。
-
CA サブシステムの署名証明書は、上記の手順に従って 中間証明書チェーン をインポートして検証しますが、
caSigningCert
でのみ行います。 - CA サブシステムの OCSP 署名証明書は、以下の手順に従って OCSP 証明書 を検証します。
- PKI サブシステムのその他のシステム証明書は、Client Certificate の手順 に従います。
以下の certutil
オプションおよび PKICertImport
オプションの詳細は、「certutil
および PKICertImport
」 を参照してください。
FIPS モードに設定されたシステムでは、PKICertImport
が不要なエラーメッセージを返しますが、これは無視できます (BZ#1393668)。
certutil: could not change trust on certificate: SEC_ERROR_TOKEN_NOT_LOGGED_IN: The operation failed because the PKCS#11 token is not logged in. e: certutil returned non-zero value: 255 e: Unable to import certificate to NSS DB: ..
certutil: could not change trust on certificate: SEC_ERROR_TOKEN_NOT_LOGGED_IN: The operation failed because the PKCS#11 token is not logged in.
e: certutil returned non-zero value: 255
e: Unable to import certificate to NSS DB: ..
サーバー証明書をインポートするには、以下を実行します。
PKICertImport -d . -h HSM -f password_file -n "host.name.example.com" -t ",," -a -i service.crt -u V
このコマンドは、サーバー証明書を検証して HSM にインポートします。エラーメッセージが出力されず、戻りコードが 0 の場合は、検証が成功します。戻りコードを確認するには、上記のコマンド実行後すぐに
echo $?
を実行します。ほとんどの場合は、視覚的なエラーメッセージが出力されます。通常、親証明書の有効期限または CA 信頼チェーンの欠落 (中間証明書の欠落や CA ルートの欠落など) が原因で、証明書の検証に失敗します。検証に成功しなかった場合は、発行者に連絡し、すべての中間証明書およびルート証明書がシステムに存在することを確認します。
クライアント証明書をインポートするには、以下を実行します。
PKICertImport -d . -h HSM -f password_file -n "client name" -t ",," -a -i client.crt -u C
このコマンドは、クライアント証明書を HSM に検証し、インポートします。エラーメッセージが出力されず、戻りコードが 0 の場合は、検証が成功します。戻りコードを確認するには、上記のコマンド実行後すぐに
echo $?
を実行します。ほとんどの場合は、視覚的なエラーメッセージが出力されます。検証に成功しなかった場合は、発行者に連絡し、すべての中間証明書およびルート証明書がシステムに存在することを確認します。
オブジェクト署名証明書をインポートするには、以下を実行します。
PKICertImport -d . -h HSM -f password_file -n "certificate name" -t ",,P" -a -i objectsigning.crt -u J
このコマンドは、オブジェクト署名証明書を HSM に検証し、インポートします。エラーメッセージが出力されず、戻りコードが 0 の場合は、検証が成功します。戻りコードを確認するには、上記のコマンド実行後すぐに
echo $?
を実行します。ほとんどの場合は、視覚的なエラーメッセージが出力されます。検証に成功しなかった場合は、発行者に連絡し、すべての中間証明書およびルート証明書がシステムに存在することを確認します。
OCSP 応答署名証明書をインポートするには、以下を実行します。
PKICertImport -d . -h HSM -f password_file -n "certificate name" -t ",," -a -i ocsp.crt -u O
このコマンドは、OCSP レスポンダー証明書を HSM に検証し、インポートします。エラーメッセージが出力されず、戻りコードが 0 の場合は、検証が成功します。戻りコードを確認するには、上記のコマンド実行後すぐに
echo $?
を実行します。ほとんどの場合は、視覚的なエラーメッセージが出力されます。検証に成功しなかった場合は、発行者に連絡し、すべての中間証明書およびルート証明書がシステムに存在することを確認します。