2.4.5.3. KRA トランスポートのキーローテーション
KRA トランスポートローテーションにより、現在のトランスポートキーと新しいトランスポートキーを使用して、CA サブシステムインスタンスと KRA サブシステムインスタンスとの間のシームレスな移行が可能になります。これにより、移行時に古いトランスポートキーと新しいトランスポートキーの両方を操作できるようにすることで、KRA トランスポートキーを定期的にローテーションしてセキュリティーを強化できます。個々のサブシステムインスタンスは順番に設定され、他のクローンはダウンタイムなしでサービスを継続します。
KRA トランスポートキーローテーションプロセスでは、新しいトランスポートキーペアが生成され、証明書要求が送信され、新しいトランスポート証明書が取得されます。2 番目のトランスポートキーのサポートを提供するために、新しいトランスポートキーペアと証明書を KRA 設定に含める必要があります。KRA が 2 つのトランスポートキーをサポートすると、管理者は CA を新しいトランスポートキーに移行できます。古いトランスポートキーの KRA サポートは、すべての CA が新しいトランスポートキーに移動した後に削除できます。
KRA トランスポートキーローテーションを設定するには、以下を実行します。
- 新しい KRA トランスポートの鍵および証明書の生成
- 新しいトランスポートキーおよび証明書の KRA クローンへの転送
- 新しい KRA トランスポート証明書を使用した CA 設定の更新
- 新しいトランスポートキーおよび証明書のみを使用するように KRA 設定を更新
これにより、KRA トランスポート証明書のローテーションが完了し、影響を受ける CA および KRA がすべて新しい KRA 証明書のみを使用します。上記の手順の実行方法は、以下の手順を参照してください。
- 新しい KRA トランスポートキーおよび証明書の生成
- KRA トランスポート証明書を要求します。
- KRA を停止します。
systemctl stop pki-tomcatd@pki-kra.service
またはsystemctl stop pki-tomcatd-nuxwdog@pki-kra.service (if using the
nuxwdog watchdog
) - KRA NSS データベースディレクトリーに移動します。
cd /etc/pki/pki-kra/alias
- サブディレクトリーを作成し、すべての NSS データベースファイルを保存します。以下に例を示します。
mkdir nss_db_backup cp *.db nss_db_backup
PKCS10Client
ユーティリティーを使用して新しいリクエストを作成します。以下に例を示します。PKCS10Client -p password -d '.' -o 'req.txt' -n 'CN=KRA Transport 2 Certificate,O=example.com Security Domain'
または、certutil
ユーティリティーを使用します。以下に例を示します。certutil -d . -R -k rsa -g 2048 -s 'CN=KRA Transport 2 Certificate,O=example.com Security Domain' -f password-file -a -o transport-certificate-request-file
- CA エンドエンティティーページの 手動データリカバリーマネージャートランスポート証明書の登録 ページで、トランスポート証明書要求を送信します。
- End-Entity 取得ページで要求ステータスをチェックして、送信した要求のエージェント承認が証明書を取得するのを待ちます。
- CA Agent Services インターフェイスを使用して KRA トランスポート証明書を承認します。
- KRA トランスポート証明書を取得します。
- KRA NSS データベースディレクトリーに移動します。
cd /etc/pki/pki-kra/alias
- End-Entity 取得ページで要求ステータスをチェックして、送信した要求のエージェント承認が証明書を取得するのを待ちます。
- 新しい KRA トランスポート証明書が利用可能になったら、その Base64 でエンコードされた値をテキストファイル (例:
cert-serial_number.txt
ファイル) に貼り付けます。ヘッダー (-----BEGIN CERTIFICATE-----
) またはフッター (-----END CERTIFICATE-----
) を追加しないでください。
- KRA トランスポート証明書を要求します。
- KRA NSS データベースディレクトリーに移動します。
cd /etc/pki/pki-kra/alias
- トランスポート証明書を KRA NSS データベースにインポートします。
certutil -d . -A -n 'transportCert-serial_number cert-pki-kra KRA' -t 'u,u,u' -a -i cert-serial_number.txt
- KRA トランスポート証明書設定を更新します。
- KRA NSS データベースディレクトリーに移動します。
cd /etc/pki/pki-kra/alias
- 新しい KRA トランスポート証明書がインポートされていることを確認します。
certutil -d . -L certutil -d . -L -n 'transportCert-serial_number cert-pki-kra KRA'
/var/lib/pki/pki-kra/kra/conf/CS.cfg
ファイルを開き、以下の行を追加します。kra.transportUnit.newNickName=transportCert-serial_number cert-pki-kra KRA
- 新しいトランスポートキーおよび証明書の KRA クローンへの伝搬
- KRA を起動します。
systemctl start pki-tomcatd@pki-kra.service
またはsystemctl start pki-tomcatd-nuxwdog@pki-kra.service (if using the
nuxwdog watchdog
) - クローンに伝播するために、新しいトランスポートキーと証明書を抽出します。
- KRA NSS データベースディレクトリーに移動します。
cd /etc/pki/pki-kra/alias
- KRA を停止します。
systemctl stop pki-tomcatd@pki-kra.service
またはsystemctl stop pki-tomcatd-nuxwdog@pki-kra.service (if using the
nuxwdog watchdog
) - 新しい KRA トランスポート証明書が存在することを確認します。
certutil -d . -L certutil -d . -L -n 'transportCert-serial_number cert-pki-kra KRA'
- KRA の新規トランスポートキーおよび証明書をエクスポートします。
pk12util -o transport.p12 -d . -n 'transportCert-serial_number cert-pki-kra KRA'
- エクスポートした KRA トランスポート鍵および証明書を確認します。
pk12util -l transport.p12
- 各 KRA クローンで以下の手順を実行します。
- トランスポートキーおよび証明書を含む
transport.p12
ファイルを KRA クローンの場所にコピーします。 - クローンの NSS データベースディレクトリーに移動します。
cd /etc/pki/pki-kra/alias
- KRA のクローンを停止します。
systemctl stop pki-tomcatd@pki-kra.service
またはsystemctl stop pki-tomcatd-nuxwdog@pki-kra.service (if using the
nuxwdog watchdog
) - クローン NSS データベースの内容を確認します。
certutil -d . -L
- クローンの新規トランスポートキーと証明書をインポートします。
pk12util -i transport.p12 -d .
- クローンの
/var/lib/pki/pki-kra/kra/conf/CS.cfg
ファイルに以下の行を追加します。kra.transportUnit.newNickName=transportCert-serial_number cert-pki-kra KRA
- KRA のクローンを起動します。
systemctl start pki-tomcatd@pki-kra.service
またはsystemctl start pki-tomcatd-nuxwdog@pki-kra.service (if using the
nuxwdog watchdog
)
- 新しい KRA トランスポート証明書を使用した CA 設定の更新
- CA に組み込む新しい KRA トランスポート証明書をフォーマットします。
- 直前の手順で KRA トランスポート証明書を取得する際に作成した
cert-serial_number.txt
KRA トランスポート証明書ファイルを取得します。 cert-serial_number.txt
に含まれる Base64 でエンコードされた証明書を 1 行のファイルに変換します。tr -d '\n' < cert-serial_number.txt > cert-one-line-serial_number.txt
- CA と、上記の KRA に対応するすべてのクローンに対して以下を行います。
- CA を停止します。
systemctl stop pki-tomcatd@pki-ca.service
あるいはsystemctl stop pki-tomcatd-nuxwdog@pki-ca.service (if using the
nuxwdog watchdog
) /var/lib/pki/pki-ca/ca/conf/CS.cfg
ファイルで、以下の行に含まれる証明書を見つけます。ca.connector.KRA.transportCert=certificate
その証明書を、cert-one-line-serial_number.txt
に含まれる証明書に置き換えます。- CA を起動します。
systemctl start pki-tomcatd@pki-ca.service
またはsystemctl start pki-tomcatd-nuxwdog@pki-ca.service (if using the
nuxwdog watchdog
)
注記CA とそのすべてのクローンが新しい KRA トランスポート証明書で更新されている間、移行を完了した CA インスタンスは新しい KRA トランスポート証明書を使用し、まだ更新されていない CA インスタンスは引き続き古い KRA トランスポート証明書を使用します。対応する KRA とそのクローンが両方のトランスポート証明書を使用するよう更新されているため、ダウンタイムは発生しません。- 新しいトランスポートキーおよび証明書のみを使用するように KRA 設定を更新
- KRA とその各クローンについて、以下を実行します。
- KRA NSS データベースディレクトリーに移動します。
cd /etc/pki/pki-kra/alias
- KRA を停止します。
systemctl stop pki-tomcatd@pki-kra.service
またはsystemctl stop pki-tomcatd-nuxwdog@pki-kra.service (if using the
nuxwdog watchdog
) - 新しい KRA トランスポート証明書がインポートされていることを確認します。
certutil -d . -L certutil -d . -L -n 'transportCert-serial_number cert-pki-kra KRA'
/var/lib/pki/pki-kra/kra/conf/CS.cfg
ファイルを開き、以下の行に含まれるnickName
の値を見つけます。kra.transportUnit.nickName=transportCert cert-pki-kra KRA
nickName
の値を、以下の行に含まれるnewNickName
値に置き換えます。kra.transportUnit.newNickName=transportCert-serial_number cert-pki-kra KRA
これにより、CS.cfg
ファイルに以下の行が含まれます。kra.transportUnit.nickName=transportCert-serial_number cert-pki-kra KRA
/var/lib/pki/pki-kra/kra/conf/CS.cfg
から以下の行を削除します。kra.transportUnit.newNickName=transportCert-serial_number cert-pki-kra KRA
- KRA を起動します。
systemctl start pki-tomcatd@pki-kra.service
またはsystemctl start pki-tomcatd-nuxwdog@pki-kra.service (if using the
nuxwdog watchdog
)