22.2. 新規ホストでの CA の設定

既存の Directory Server インスタンスおよび証明書システムインスタンスからデータをエクスポートすると 「以前のシステムからのデータのエクスポート」、新しいホストに認証局(CA)を設定します。
  1. Directory Server を設定します。を参照し 「Red Hat Directory Server のインストール」 てください。
  2. Certificate System リポジトリーを有効にします。を参照し 「Red Hat サブスクリプションの添付および Certificate System パッケージリポジトリーの有効化」 てください。
  3. pki-ca パッケージをインストールします。
    # yum install pki-ca
    Certificate System コンソールなどの追加機能が必要な場合は、対応するパッケージをインストールします。詳細はを参照してください 「Certificate System パッケージ」
  4. IPv6 アドレスを使用するホストに CA を設定する場合は、で説明されている手順を適用し 「サブシステムの IPv6 の有効化」 ます。
  5. お使いの環境に応じて、このステップは異なります。
    • ハードウェアセキュリティーモジュール(HSM)を使用する場合:
      以下の内容で、/root/pki-CA-deployment.txt などのデプロイメント設定ファイルを作成します。
      [DEFAULT]
      pki_instance_name=instance_name
      pki_admin_password=caadmin_password
      pki_client_pkcs12_password=pkcs12_file_password
      pki_ds_password=DS_password
      pki_hsm_enable=True
      pki_hsm_libfile=path_to_HSM_library
      pki_hsm_modulename=HSM_module_name
      pki_token_name=HSM_token_name
      pki_token_password=HSM_token_password
      pki_ds_ldap_port=389
      pki_existing=True
      
      [CA]
      pki_ca_signing_csr_path=/tmp/cs_bak/ca_signing.csr
      pki_ca_signing_cert_path=/tmp/cs_bak/ca_signing.crt
      pki_ca_signing_nickname=caSigningCert ca-pki-ca
      pki_ca_signing_token=HSM_token_name
      pki_ds_base_dn=o=pki-tomcat-CA
      pki_ds_database=instance_name-CA
      pki_serial_number_range_start=4e
      pki_request_number_range_start=30
      pki_master_crl_enable=False
      pki_cert_chain_path=/tmp/cs_bak/rootca_signing.crt
      pki_cert_chain_nickname=caSigningCert cert-top-rootca
      pki_ca_signing_record_create=False
      pki_ca_signing_serial_number=decimal_CA_signing_certificate_serial
      前述の例 表22.1「pkispawn パラメーターの説明」 で使用したパラメーターの説明は、このステップの最後にあるパラメーターの説明を参照してください。
    • ハードウェアセキュリティーモジュール(HSM)を使用しない場合:
      1. PKCS #12 ファイルに CA 署名証明書および鍵が含まれていることを確認します。以下に例を示します。
        # pki pkcs12-cert-find --pkcs12-file /tmp/cs_bak/ca.p12 \
             --pkcs12-password-file /tmp/cs_bak/pkcs12_password.txt
        ---------------
        1 entries found
        ---------------
          Certificate ID: 308b4c7d4b5efc4052aec26e49a2c5e2e14c9e90
          Serial Number: 0x1
          Nickname: caSigningCert ca-pki-ca
          Subject DN: CN=CA Signing Certificate,O=EXAMPLE
          Issuer DN: CN=CA Signing Certificate,O=EXAMPLE
          Trust Flags: CTu,Cu,Cu
          Has Key: true
        
        # pki pkcs12-key-find --pkcs12-file /tmp/cs_bak/ca.p12 \
             --pkcs12-password-file /tmp/cs_bak/pkcs12_password.txt
        ---------------
        1 entries found
        ---------------
          Key ID: 308b4c7d4b5efc4052aec26e49a2c5e2e14c9e90
          Subject DN: CN=CA Signing Certificate,O=EXAMPLE
          Algorithm: RSA
        
        このファイルに追加で他の証明書および鍵を含めることができることに注意してください。
      2. 直前の手順の出力で、CA 署名証明書のトラストフラグを確認します。フラグが CTu,Cu,Cu に設定されていない場合や、不明な場合はフラグをリセットします。
        # pki pkcs12-cert-mod caSigningCert cert-pki-tomcat CA \
             --pkcs12-file /tmp/cs_bak/ca.p12 \
             --pkcs12-password-file /tmp/cs_bak/pkcs12_password.txt \
             --trust-flags "CTu,Cu,Cu"
      3. CA 署名証明書および鍵(CA 署名証明書および鍵を除く)はすべて PKCS #12 ファイルから削除します。以下に例を示します。
        # pki pkcs12-cert-del Server-Cert root_CA_nickname \
             --pkcs12-file /tmp/cs_bak/ca.p12 \
             --pkcs12-password-file /tmp/cs_bak/pkcs12_password.txt
        
        # pki pkcs12-cert-del "subsystemCert ca-pki-ca" \
             --pkcs12-file /tmp/cs_bak/ca.p12 \
             --pkcs12-password-file /tmp/cs_bak/pkcs12_password.txt
        
        # pki pkcs12-cert-del "ocspSigningCert ca-pki-ca" \
             --pkcs12-file /tmp/cs_bak/ca.p12 \
             --pkcs12-password-file /tmp/cs_bak/pkcs12_password.txt
        
        # pki pkcs12-cert-del "auditSigningCert ca-pki-ca" \
             --pkcs12-file /tmp/cs_bak/ca.p12 \
             --pkcs12-password-file /tmp/cs_bak/pkcs12_password.txt
      4. 移行する CA が中間 CA の場合は、PKCS #12 ファイルからルート CA 証明書を削除します。以下に例を示します。
        # pki pkcs12-cert-del ca-pki-ca \
             --pkcs12-file /tmp/cs_bak/ca.p12 \
             --pkcs12-password-file /tmp/cs_bak/pkcs12_password.txt
      5. 以下の内容で、/root/pki-CA-deployment.txt などのデプロイメント設定ファイルを作成します。
        [DEFAULT]
        pki_instance_name=instance_name
        pki_admin_password=caadmin_password
        pki_client_pkcs12_password=pkcs12_file_password
        pki_ds_password=DS_password
        pki_ds_ldap_port=389
        pki_existing=True
        
        [CA]
        pki_ca_signing_nickname=caSigningCert ca-pki-ca
        pki_ca_signing_csr_path=/tmp/cs_bak/ca_signing.csr
        pki_pkcs12_path=/tmp/cs_bak//cs_bak/ca.p12
        pki_pkcs12_password=pkcs12_file_password
        pki_ds_base_dn=o=pki-tomcat-CA
        pki_ds_database=pki-tomcat-CA
        pki_serial_number_range_start=43
        pki_request_number_range_start=30
        pki_master_crl_enable=False
        pki_cert_chain_path=/tmp/cs_bak/rootca_signing.crt
        pki_cert_chain_nickname=caSigningCert cert-top-rootca
        pki_ca_signing_record_create=False
        pki_ca_signing_serial_number=decimal_CA_signing_certificate_serial
        上記の例で使用したパラメーターの説明は、を参照してください 表22.1「pkispawn パラメーターの説明」

    表22.1 pkispawn パラメーターの説明

    パラメーターおよび設定
    説明
    pki_hsm_* および pki_token_*
    HSM との通信を有効にします。HSM で CA を設定する場合にのみ、これらのパラメーターを設定します。
    pki_existing=True
    既存の CA メカニズムを使用するように設定します。
    pki_ca_signing_nickname
    CA 署名ニックネームは、前のインストールで使用されたものとまったく同じである必要があります。そうでない場合、インストーラーは署名キーを見つけることができません。
    pki_ca_signing_*
    証明書署名要求 (CSR) および既存のマシンからコピーされた証明書ファイルへのパスを設定します。
    pki_pkcs12_*
    PKCS #12 ファイルへのパスとファイルの復号に使用されるパスワードを設定します。HSM で CA をデプロイする場合は、このパラメーターを設定しないでください。
    pki_ds_base_dn
    Directory Server ベース識別名 (DN) を設定します。値は以前の CA と同じである必要があります。この値は、前のホストでは /var/lib/instance_name/conf/CS.cfg ファイルの internaldb.basedn パラメーターにあります。
    pki_serial_number_range_start
    シリアル番号は重要です。値は、以前の CA で使用される最後の数値よりも高くする必要があります。すでに使用されている番号を表示するには、古い CA のエージェントインターフェースを参照してください。このパラメーターは、先頭に 0x の接頭辞なしで 16 進形式で設定されます。例 (4e) で使用される値は、10 進数の 78 です。
    pki_request_number_range_start
    リクエスト番号が重要である。値は、以前の CA で使用される最後の数値よりも高くする必要があります。すでに使用されている番号を表示するには、古い CA のエージェントインターフェースを参照してください。値は 10 進数の形式で設定されます。
    pki_master_crl_enable=False
    セットアップ中の証明書失効リスト (CRL) の初期作成と公開を防ぎます。代わりに、CRL はデータベースの移行時に古いデータからインポートされます。
    pki_cert_chain_path および pki_cert_chain_nickname
    古い CA が中間 CA の場合にのみ、これらのパラメーターを設定します。この場合、ルート CA 証明書ファイルへのパスと、証明書を Network Security Services (NSS) データベースに保存するときに使用するニックネームにパラメーターを設定します。
    pki_ca_signing_record_create=False
    pkispawn プロセスの最後に CA 署名レコードの再作成を無効にします。これにより、古いデータベースをインポートできます。
    pki_ca_signing_serial_number
    CA 署名証明書のシリアル番号を 10 進数で設定します。これにより、最初に作成された署名証明書データベースレコードを削除し、代わりに ldif データインポートを介してインポートします。連続シリアル番号スキームでは、pki_serial_number_range_start で設定された値の 10 進数表現である必要があります。E.g.: pki_serial_number_range_start=100 pki_ca_signing_serial_number=256
    詳細およびパラメーターの説明は、pkispawn(8) の man ページを参照してください。
  6. デプロイメント設定ファイルを使用して新規 CA を作成します。以下に例を示します。
    # pkispawn -s CA -f /root/pki-CA-deployment.txt
  7. CA 署名キー ID が既存および新しい CA の同じであることを確認します。以下に例を示します。
    # grep "internal=" /var/lib/instance_name/conf/password.conf | \
         awk -F= '{print $2;}' > internal.txt
    # certutil -K -d /var/lib/instance_name/alias/ -f internal.txt
    ...
    < 2> rsa      7bd4dc662670ebe08a35086b054175559608ac20   caSigningCert ca-pki-ca
    ...