17.3. エージェント承認キーリカバリースキームの設定

キーリカバリーエージェントは、PKCS #12 パッケージ内の秘密暗号化キーと関連する証明書をまとめて承認および取得します。キーリカバリーを承認するには、必要な数のリカバリーエージェントが KRA エージェントサービスページにアクセスし、Authorize Recovery 領域を使用して各承認を個別に入力します。
エージェントの 1 つが、キーリカバリープロセスを開始します。同期リカバリーの場合、各承認エージェントは、(最初のリクエストで返された) 参照番号を使用して要求をオープンにし、その後、個別に鍵のリカバリーを承認します。非同期リカバリーの場合、承認エージェントはすべてキーリカバリー要求を検索してから、キーリカバリーを承認します。すべての承認が指定されている場合に、KRA は情報を確認します。提示された情報が正しい場合は、要求されたキーを取得し、PKCS #12 パッケージの形式で、キーリカバリープロセスを開始したエージェントに、対応する証明書を返します。
キーリカバリーエージェントスキーム は、キーリカバリーエージェントが属するグループを認識するように KRA を設定し、アーカイブされた鍵を復元する前にキーリカバリー要求を承認するために必要なこれらのエージェントの数を指定します。

17.3.1. コマンドラインでのエージェント承認キーリカバリーの設定

エージェントが開始するキーリカバリーを設定するには、KRA 設定で 2 つのパラメーターを編集します。
  • リカバリーの承認に必要なリカバリーマネージャーの数を設定します。
  • これらのユーザーが属する必要のあるグループを設定します。
これらのパラメーターは、KRA の CS.cfg 設定ファイルで設定されます。
  1. 設定ファイルを編集する前にサーバーを停止します。
    # systemctl stop pki-tomcatd@instance_name.service
    または (nuxwdog watchdog を使用している場合)
    # systemctl stop pki-tomcatd-nuxwdog@instance_name.service
  2. KRA の CS.cfg ファイルを開きます。
    # vim /var/lib/pki/pki-tomcat/kra/conf/CS.cfg
  3. 2 つのリカバリースキームパラメーターを編集します。
    kra.noOfRequiredRecoveryAgents=3
    kra.recoveryAgentGroup=Key Recovery Authority Agents
  4. サービスを再起動します。
    # systemctl start pki-tomcatd@instance_name.service
    または
    # systemctl start pki-tomcatd-nuxwdog@instance_name.service
注記
コンソールでエージェント承認済みキーリカバリーを設定する方法は、『Red Hat Certificate System 管理ガイド』のコンソールでのエージェント承認キーリカバリーの設定を参照してください。

17.3.2. キーリカバリーフォームのカスタマイズ

デフォルトのキーエージェントスキームでは、キーリカバリー機関エージェントグループの単一のエージェントがキーリカバリーの承認を担当する必要があります。
キーリカバリー形式の外観をカスタマイズすることもできます。キーリカバリーエージェントには、キーリカバリープロセスを開始するための適切なページが必要です。デフォルトでは、KRA のエージェントサービスページには、キーリカバリーエージェントがキーリカバリーを開始し、キーリカバリー要求を承認し、暗号化キーを取得できるようにする適切な HTML フォームが含まれています。このフォームは、confirmRecover.html と呼ばれる /var/lib/pki/pki-tomcat/kra/webapps/kra/agent/kra/ ディレクトリーにあります。
重要
キーリカバリーの確認フォームをカスタマイズするには、応答を生成するための情報を削除しないでください。これは、フォームの機能に不可欠です。コンテンツへの変更とフォームの表示を制限します。

17.3.3. 新しいプライベートストレージキーでのキーの再ラップ

一部の秘密鍵 (主に以前のデプロイメントで) は、KRA でアーカイブされた場合に SHA-1、1024 ビットのストレージキーでラップされました。プロセッサーの速度とアルゴリズムが破損しているため、このアルゴリズムはセキュリティーレベルが低くなります。セキュリティー対策として、新しい強力なストレージ鍵 (SHA-256、2048 ビット鍵) で秘密鍵を再ラップできます。

17.3.3.1. KRATool について

キーの再ラップと移動、およびキーの登録とリカバリー要求は、KRATool ユーティリティー (以前のバージョンの Red Hat Certificate System では DRMTool) を使用して行われます。
KRATool は、2 つの操作を実行します。新しい秘密鍵で鍵を再ラップでき、登録やリカバリー要求など、キーレコードの LDIF ファイルエントリーで属性を再配列できます。少なくとも 1 つの操作 (再ラップまたは再番号付け) を実行する必要があり、両方を 1 回の呼び出しで実行できます。
キーを再ラップする場合、ツールは元の KRA のエクスポートされた LDIF ファイルのキーエントリーにアクセスし、元の KRA ストレージキーを使用してキーをアンラップしてから、新しい KRA のより強力なストレージキーでキーを再ラップします。

例17.1 キーの再ラップ

KRATool -kratool_config_file "/usr/share/pki/java-tools/KRATool.cfg" -source_ldif_file "/tmp/files/originalKRA.ldif" -target_ldif_file "/tmp/files/newKRA.ldif" -log_file "/tmp/kratool.log" -source_pki_security_database_path "/tmp/files/" -source_storage_token_name "Internal Key Storage Token" -source_storage_certificate_nickname "storageCert cert-pki-tomcat KRA" -target_storage_certificate_file "/tmp/files/omega.cert"
複数の KRA インスタンスが単一のインスタンスにマージされる場合は、キーまたは要求レコードに競合する CN、DN、シリアル番号、または要求 ID 番号がないことを確認することが重要です。これらの値を処理して、既存の値に新しい大きな数値を追加できます。

例17.2 キーの番号変更

KRATool -kratool_config_file "/usr/share/pki/java-tools/KRATool.cfg" -source_ldif_file "/tmp/files/originalKRA.ldif" -target_ldif_file "/tmp/files/newKRA.ldif" -log_file "/tmp/kratool.log" -append_id_offset 100000000000 -source_kra_naming_context "pki-tomcat-KRA" -target_kra_naming_context "pki-tomcat-2-KRA" -process_requests_and_key_records_only
KRATool オプションとその設定ファイルの詳細は、KRATool(1) の man ページで説明されています。

17.3.3.2. 1 つまたは複数の KRA から 1 つの KRA へのキーのラップとマージ

この手順では、1 つ以上の Certificate System KRA (たとえば、sourcekra.example.compki-tomcat) に保存されているキーを再ラップし、それを別の Certificate System KRA (たとえば targetkra.example.compki-tomcat-2) に保存します。これが唯一のユースケースではありません。このツールは、ソースとターゲットの両方と同じインスタンスで実行して既存のキーを再ラップすることも、キーをまったく再ラップせずに複数の KRA インスタンスから単一のインスタンスにキーをコピーするために使用することもできます。
重要
pki-tomcat-2 KRA ストレージ鍵のサイズとタイプは、2048 ビットおよび RSA に設定する必要があります。
  1. targetkra.example.com にログインします。
  2. pki-tomcat-2 KRA を停止します。
    [root@targetkra ~]# systemctl stop pki-tomcatd@pki-tomcat-2.service
  3. sourcekra.example.com にある pki-tomcat KRA インスタンスからインポートされるキーデータを保存するデータディレクトリーを作成します。
    [root@targetkra ~]# mkdir -p /export/pki
  4. pki-tomcat-2 KRA のパブリックストレージ証明書を、新規データディレクトリーのフラットファイルにエクスポートします。
    [root@targetkra ~]# certutil -L -d /var/lib/pki/pki-tomcat-2/alias -n "storageCert cert-pki-tomcat-2 KRA" -a > /export/pki/targetKRA.cert
  5. 同じマシンにある場合は、pki-tomcat-2 KRA の Directory Server インスタンスを停止します。
    [root@newkra ~]# systemctl stop dirsrv.target
  6. pki-tomcat-2 KRA の設定情報をエクスポートします。
    root@targetkra ~]# grep nsslapd-localuser /etc/dirsrv/slapd-instanceName/dse.ldif
      nsslapd-localuser: dirsrv
    
    [root@targetkra ~]# chown dirsrv:dirsrv /export/pki
    
    [root@targetkra ~]# /usr/lib64/dirsrv/slapd-instanceName/db2ldif -n pki-tomcat-2-KRA -a /export/pki/pki-tomcat-2.ldif
    
    重要
    LDIF ファイルの最後に 1 行の空白行が含まれていることを確認してください。
  7. sourcekra.example.com にログインします。
  8. pki-tomcat KRA を停止します。
    [root@sourcekra ~]# systemctl stop pki-tomcatd@pki-tomcat.service
  9. targetkra.example.com にある pki-tomcat-2 KRA インスタンスにエクスポートされるキーデータを保存するデータディレクトリーを作成します。
    [root@sourcekra ~]# mkdir -p /export/pki
  10. 同じマシンにある場合は、pki-tomcat KRA の Directory Server インスタンスを停止します。
    [root@sourcekra ~]# systemctl stop dirsrv.target
  11. pki-tomcat KRA の設定情報をエクスポートします。
    [root@sourcekra ~]# grep nsslapd-localuser /etc/dirsrv/slapd-instanceName/dse.ldif
      nsslapd-localuser: dirsrv
    
    [root@sourcekra ~]# chown dirsrv:dirsrv /export/pki
    
    [root@sourcekra ~]# /usr/lib64/dirsrv/slapd-instanceName/db2ldif -n pki-tomcat-KRA -a /export/pki/pki-tomcat.ldif
    
    重要
    LDIF ファイルの最後に 1 行の空白行が含まれていることを確認してください。
  12. このディレクトリーに pki-tomcat KRA NSS セキュリティーデータベースをコピーします。
    [root@sourcekra ~]# cp -p /var/lib/pki/pki-tomcat/alias/cert9.db /export/pki
    
    [root@sourcekra ~]# cp -p /var/lib/pki/pki-tomcat/alias/key4.db /export/pki
    
    [root@sourcekra ~]# cp -p /var/lib/pki/pki-tomcat/alias/pkcs11.txt /export/pki
    
  13. パブリックストレージキーを持つファイルを pki-tomcat-2 KRA マシンからこのマシンにコピーします。以下に例を示します。
    [root@sourcekra ~]# cd /export/pki
    
    [root@sourcekra ~]# sftp root@targetkra.example.com
      sftp> cd /export/pki
      sftp> get targetKRA.cert
      sftp> quit
    
  14. 必要に応じて、このツールで使用するデフォルトの KRATool.cfg ファイルを編集します。デフォルトのファイルは、変更せずに使用することもできます。
  15. KRATool を実行します。これらのパラメーターはすべて 1 行にまとめる必要があります。
    [root@sourcekra ~]# KRATool -kratool_config_file "/usr/share/pki/java-tools/KRATool.cfg"
              -source_ldif_file /export/pki/pki-tomcat.ldif \
              -target_ldif_file /export/pki/source2targetKRA.ldif \
              -log_file /export/pki/kratool.log \
              -source_pki_security_database_path /export/pki \
              -source_storage_token_name 'Internal Key Storage Token' \
              -source_storage_certificate_nickname 'storageCert cert-pki-tomcat KRA' \
              -target_storage_certificate_file /export/pki/targetKRA.cert
              -append_id_offset 100000000000 \
              -source_kra_naming_context "pki-tomcat-KRA" \
              -target_kra_naming_context "pki-tomcat-2-KRA" \
              -process_requests_and_key_records_only
    注記
    コマンドは、pki-tomcat KRA NSS セキュリティーデータベースに保存されているトークンのパスワードの入力を求める場合があります。
    完了すると、このコマンドは、-target_ldif_file パラメーター source2targetKRA.ldif で指定されたファイルを作成します。
  16. この LDIF ファイルを pki-tomcat-2 KRA マシンにコピーします。以下に例を示します。
    [root@sourcekra ~]# scp /export/pki/source2targetKRA.ldif root@targetkra.example.com:/export/pki
    重要
    LDIF ファイルの最後に 1 行の空白行が含まれていることを確認してください。
  17. 複数の KRA インスタンスをマージしている場合、それらのデータは単一のインポート操作にマージできます。マージされるすべての KRA で同じ手順を実施します。
    重要
    -target_ldif_file パラメーターが LDIF ファイルを作成するように一意の値を指定し、LDIF ファイルが連結したときに競合が発生しないように一意の -append_id_offset 値を指定します。
  18. pki-tomcat-2 KRA マシンに、pki-tomcat-2 KRA 設定 LDIF ファイル、およびその他の KRA インスタンス用にエクスポートされたすべての LDIF ファイルを連結して、LDIF ファイルを他のキーデータとともにインポートします。以下に例を示します。
    [root@targetkra ~]# cd /export/pki
    [root@targetkra ~]# cat pki-tomcat-2.ldif source2targetKRA.ldif > combined.ldif
    
  19. pki-tomcat-2 KRA インスタンス用に、この組み合わせた LDIF ファイルを Directory Server データベースにインポートします。
    [root@targetkra ~]# /usr/lib64/dirsrv/slapd-instanceName/ldif2db -n pki-tomcat-2-KRA -i /export/pki/combined.ldif
  20. pki-tomcat-2 KRA の Directory Server インスタンスを起動します。
    [root@targetkra ~]# systemctl start dirsrv.target
  21. pki-tomcat-2 KRA を起動します。
    [root@targetkra ~]# systemctl start pki-tomcatd@pki-tomcat-2.service

17.3.4. クローン後の CA-KRA コネクター情報の更新

クローン後の CA-KRA 情報の更新に関する詳細は、「クローン後の CA-KRA コネクター情報の更新」を参照してください。