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

「以前のシステムからのデータのエクスポート」 で既存の Directory Server と Certificate System インスタンスからデータをエクスポートしたら、新しいホストに認証局を設定します。
  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 署名証明書とキーを除く、他のすべての証明書とキーを 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 の場合は、ルート CA 証明書を PKCS #12 ファイルから削除します。以下はその例です。
        # 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 と同じでなければなりません。この値は、以前のホストのinternaldb.basedn/var/lib/instance_name/conf/CS.cfg ファイルのパラメーター。
    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 進数表現である必要があります。例: 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 と新しい 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
    ...