7.6. SubCA の作成と設定 (パート I)


SubCA インスタンスをインストールして設定するには、2 つの pkispawn メソッドの いずれか 1 つ を使用します。

注記

このインストール例では、OCSP インスタンスを作成するため、OCSP の URL を指す AIA 拡張を持つ SubCA の非ブートストラップロールユーザー証明書と SubCA の TLS サーバー証明書を作成します。そのためには、SubCA の作成と設定を分離し、セットアップが次の順序で行われるようにします。

  • SubCA をインストールします (このセクション)
  • OCSP をインストールし、目的の AIA で証明書を発行するための設定を行います。
  • 非ブートストラップユーザーの作成と SubCA の一時 TLS サーバー証明書の置き換えを完了します。

7.6.1. SubCA インスタンスのインストール (シングルステップ方式)

シングルステップ方式を使用して SubCA インスタンスを設定するには、設定ファイルを作成し、pkispawn ツールを 1 回実行する必要があります。この例では、SubCA は rhcs10.example.com (および他のインスタンス) にインストールされ、その内部ディレクトリーサーバーは rhds11.example.com にあります。SubCA 署名証明書は RootCA によって発行され、SubCA は独自のセキュリティードメインを作成します。

前提条件

手順

  1. 選択した場所 (例: /root/pki_rsa) に SubCA インストールファイルを作成します。

    Copy to Clipboard Toggle word wrap
    # cd /root/pki_rsa
    Copy to Clipboard Toggle word wrap
    # vi subca_inst.cfg
    注記

    明示的に指定されていない限り、システム証明書のニックネームは、pki_instance_name に指定された値を使用して自動的に名前が付けられます。共有 HSM での証明書のニックネームの競合を回避するには、インスタンスを作成するたびに一意のインスタンス名を使用します。

    以下のインストールファイルでは、例となる値を指定しています。HSM パスワードの変更に加えて、たとえばポート、ディレクトリー、ニックネーム、ドメインなどの値を適宜変更します。

    Copy to Clipboard Toggle word wrap
    [DEFAULT]
    pki_instance_name=rhcs10-RSA-SubCA
    pki_https_port=31443
    pki_http_port=31080
    
    ### Crypto Token
    pki_hsm_enable=True
    pki_hsm_libfile=/opt/nfast/toolkits/pkcs11/libcknfast.so
    pki_hsm_modulename=nfast
    pki_token_name=NHSM-CONN-XC
    pki_token_password=<YourHSMpassword>
    
    pki_audit_signing_token=NHSM-CONN-XC
    pki_audit_signing_key_algorithm=SHA256withRSA
    pki_audit_signing_key_size=2048
    pki_audit_signing_key_type=rsa
    pki_audit_signing_signing_algorithm=SHA256withRSA
    
    pki_subsystem_token=NHSM-CONN-XC
    pki_subsystem_key_algorithm=SHA256withRSA
    pki_subsystem_signing_algorithm=SHA256withRSA
    pki_subsystem_key_size=2048
    pki_subsystem_key_type=rsa
    
    pki_sslserver_token=NHSM-CONN-XC
    pki_sslserver_key_algorithm=SHA256withRSA
    pki_sslserver_signing_algorithm=SHA256withRSA
    pki_sslserver_key_size=2048
    pki_sslserver_key_type=rsa
    
    ### CA cert chain concatenated in PEM format
    pki_cert_chain_path=/opt/pki_rsa/ca-chain.pem
    
    ### Bootstrap Admin
    pki_admin_password=SECret.123
    pki_admin_key_type=rsa
    pki_admin_key_size=2048
    pki_admin_key_algorithm=SHA256withRSA
    
    ### Bootstrap Admin client dir
    pki_client_admin_cert_p12=/opt/pki_rsa/rhcs10-RSA-SubCA/ca_admin_cert.p12
    pki_client_database_dir=/opt/pki_rsa/rhcs10-RSA-SubCA/certs_db
    pki_client_database_password=SECret.123
    pki_client_dir=/opt/pki_rsa/rhcs10-RSA-SubCA
    pki_client_pkcs12_password=SECret.123
    
    ### Internal LDAP
    pki_ds_bind_dn=cn=Directory Manager
    pki_ds_ldap_port=7389
    pki_ds_ldaps_port=7636
    pki_ds_password=SECret.123
    pki_ds_remove_data=True
    pki_ds_secure_connection=True
    pki_ds_secure_connection_ca_pem_file=/opt/pki_rsa/temp-dirsrv-subca-cert.pem
    pki_ds_secure_connection_ca_nickname=DS temp CA certificate
    
    
    [Tomcat]
    pki_ajp_port=31009
    pki_tomcat_server_port=31005
    
    
    [CA]
    pki_subordinate=True
    pki_issuing_ca_https_port=8443
    pki_issuing_ca_hostname=rhcs10.example.com
    pki_issuing_ca=https://rhcs10.example.com:8443
    
    ### New Security Domain
    pki_security_domain_hostname=rhcs10.example.com
    pki_security_domain_https_port=8443
    pki_security_domain_password=SECret.123
    pki_subordinate_create_new_security_domain=True
    pki_subordinate_security_domain_name=Example-rhcs10-RSA-SubCA
    
    pki_import_admin_cert=False
    pki_admin_nickname=PKI Bootstrap Administrator for RSA-SubCA
    pki_admin_name=caadmin
    pki_admin_uid=caadmin
    pki_admin_email=caadmin@example.com
    
    pki_ca_signing_token=NHSM-CONN-XC
    pki_ca_signing_key_algorithm=SHA256withRSA
    pki_ca_signing_key_size=3072
    pki_ca_signing_key_type=rsa
    pki_ca_signing_nickname=CA Signing Cert - %(pki_instance_name)s
    pki_ca_signing_signing_algorithm=SHA256withRSA
    
    pki_ocsp_signing_token=NHSM-CONN-XC
    pki_ocsp_signing_key_algorithm=SHA256withRSA
    pki_ocsp_signing_key_size=3072
    pki_ocsp_signing_key_type=rsa
    pki_ocsp_signing_signing_algorithm=SHA256withRSA
    
    pki_ds_hostname=rhds11.example.com
    pki_ds_base_dn=dc=RSA-SubCA
    pki_ds_database=CC-RSA-SubCA-LDAP
    pki_share_db=False
    
    ### Enable random serial numbers
    pki_random_serial_numbers_enable=True
  2. pkispawn ツールを実行して、RHCS SubCA インスタンスをインストールします。

    Copy to Clipboard Toggle word wrap
    # pkispawn -s CA -f subca_inst.cfg --debug

    これにより、SubCA インスタンスが /var/lib/pki/rhcs10-RSA-SubCA に作成されます。

検証手順

  1. インストールされている CA のステータスを表示します。

    Copy to Clipboard Toggle word wrap
    # pki-server status rhcs10-RSA-SubCA

    Unsecure EE、Secure EE、Agent、Admin、および pkiconsole の URL を書き留めます。

  2. 次のコマンドを実行して、CA の正常性を確認します。証明書が表示されるはずです。

    Copy to Clipboard Toggle word wrap
    # pki -p 31443 -h rhcs10.example.com ca-cert-find
注記

次のように、pki コマンドを使用して SubCA に初めて接続すると、信頼されていない CA 署名証明書の発行者として警告が表示されます。

Copy to Clipboard Toggle word wrap
WARNING: UNTRUSTED ISSUER encountered on 'CN=rhcs10.example.com,OU=rhcs10-RSA-SubCA,O=Example-rhcs10-RSA-RootCA' indicates a non-trusted CA cert 'CN=CA Signing Certificate,OU=rhcs10-RSA-SubCA,O=Example-rhcs10-RSA-RootCA'
Trust this certificate (y/N)?

サブジェクト DN が想定したホスト名と一致する場合は、‘y’ を選択して CA 署名証明書を信頼します。警告は再度表示されなくなります。

注記

このセクション (シングルステップ方式) を完了したら、「CA 証明書チェーンを更新する」 に進んで SubCA をインストールします。

7.6.2. SubCA インスタンスのインストール (ツーステップ方式)

ツーステップ方式を使用して SubCA インスタンスを設定するには、設定ファイルを作成し、pkispawn ツールを 2 回実行する必要があります。
この例では、SubCA は rhcs10.example.com にインストールされます。

前提条件

SubCA インストールのステップ 1

  1. RHCS インスタンス (rhcs10.example.com) をホストするマシンで、選択した場所 (例: /root/pki_rsa) に CA インストールファイルを作成します。

    Copy to Clipboard Toggle word wrap
    # cd /root/pki_rsa
    
    # vi subca_inst.cfg
    Copy to Clipboard Toggle word wrap
    [DEFAULT]
    pki_instance_name=rhcs10-RSA-SubCA
    pki_https_port=31443
    pki_http_port=31080
    
    ### Crypto Token
    pki_hsm_enable=True
    pki_hsm_libfile=/opt/nfast/toolkits/pkcs11/libcknfast.so
    pki_hsm_modulename=nfast
    pki_token_name=NHSM-CONN-XC
    pki_token_password=<YourHSMpassword>
    
    pki_audit_signing_token=NHSM-CONN-XC
    pki_audit_signing_key_algorithm=SHA256withRSA
    pki_audit_signing_key_size=2048
    pki_audit_signing_key_type=rsa
    pki_audit_signing_signing_algorithm=SHA256withRSA
    
    pki_subsystem_token=NHSM-CONN-XC
    pki_subsystem_key_algorithm=SHA256withRSA
    pki_subsystem_signing_algorithm=SHA256withRSA
    pki_subsystem_key_size=2048
    pki_subsystem_key_type=rsa
    
    pki_sslserver_token=NHSM-CONN-XC
    pki_sslserver_key_algorithm=SHA256withRSA
    pki_sslserver_signing_algorithm=SHA256withRSA
    pki_sslserver_key_size=2048
    pki_sslserver_key_type=rsa
    
    ### CA cert chain concatenated in PEM format
    pki_cert_chain_path=/opt/pki_rsa/ca-chain.pem
    
    ### Bootstrap Admin
    pki_admin_password=SECret.123
    pki_admin_key_type=rsa
    pki_admin_key_size=2048
    pki_admin_key_algorithm=SHA256withRSA
    
    ### Bootstrap Admin client dir
    pki_client_admin_cert_p12=/opt/pki_rsa/rhcs10-RSA-SubCA/ca_admin_cert.p12
    pki_client_database_dir=/opt/pki_rsa/rhcs10-RSA-SubCA/certs_db
    pki_client_database_password=SECret.123
    pki_client_dir=/opt/pki_rsa/rhcs10-RSA-SubCA
    pki_client_pkcs12_password=SECret.123
    
    ### Internal LDAP
    pki_ds_bind_dn=cn=Directory Manager
    pki_ds_ldap_port=7389
    pki_ds_ldaps_port=7636
    pki_ds_password=SECret.123
    pki_ds_remove_data=True
    pki_ds_secure_connection=True
    pki_ds_secure_connection_ca_pem_file=/opt/pki_rsa/temp-dirsrv-subca-cert.pem
    pki_ds_secure_connection_ca_nickname=DS temp CA certificate
    
    
    [Tomcat]
    pki_ajp_port=31009
    pki_tomcat_server_port=31005
    
    
    [CA]
    pki_subordinate=True
    pki_issuing_ca_https_port=8443
    pki_issuing_ca_hostname=rhcs10.example.com
    pki_issuing_ca=https://rhcs10.example.com:8443
    
    ### New Security Domain
    pki_security_domain_hostname=rhcs10.example.com
    pki_security_domain_https_port=8443
    pki_security_domain_password=SECret.123
    pki_subordinate_create_new_security_domain=True
    pki_subordinate_security_domain_name=Example-rhcs10-RSA-SubCA
    
    pki_import_admin_cert=False
    pki_admin_nickname=PKI Bootstrap Administrator for RSA-SubCA
    pki_admin_name=caadmin
    pki_admin_uid=caadmin
    pki_admin_email=caadmin@example.com
    
    pki_ca_signing_token=NHSM-CONN-XC
    pki_ca_signing_key_algorithm=SHA256withRSA
    pki_ca_signing_key_size=3072
    pki_ca_signing_key_type=rsa
    pki_ca_signing_nickname=CA Signing Cert - %(pki_instance_name)s
    pki_ca_signing_signing_algorithm=SHA256withRSA
    
    pki_ocsp_signing_token=NHSM-CONN-XC
    pki_ocsp_signing_key_algorithm=SHA256withRSA
    pki_ocsp_signing_key_size=3072
    pki_ocsp_signing_key_type=rsa
    pki_ocsp_signing_signing_algorithm=SHA256withRSA
    
    pki_ds_hostname=rhds11.example.com
    pki_ds_base_dn=dc=RSA-SubCA
    pki_ds_database=CC-RSA-SubCA-LDAP
    pki_share_db=False
    
    ### Enable random serial numbers
    pki_random_serial_numbers_enable=True
    注記

    明示的に指定されていない限り、システム証明書のニックネームは、pki_instance_name に指定された値を使用して自動的に名前が付けられます。共有 HSM での証明書のニックネームの競合を回避するには、インスタンスを作成するたびに一意のインスタンス名を使用します。ただし、ツーステップインストールでは、両方のファイルの pki_instance_name 値が一致する必要があります。以下の値は例として使用しています。

  2. pkispawn ツールを実行して、RHCS CA インスタンスをインストールします。

    Copy to Clipboard Toggle word wrap
    # pkispawn -s CA -f subca_inst.cfg --skip-configuration --debug

ステップ間の設定

ステップ間のカスタマイズ で説明したとおり、システム証明書の証明書プロファイルなど、特定の項目をカスタマイズできます。

  • CA 署名証明書のサブジェクトキー識別子拡張メッセージダイジェストアルゴリズムを設定します。

    1. この CA の署名証明書の登録プロファイルを開きます。

      Copy to Clipboard Toggle word wrap
      # vi /var/lib/pki/rhcs10-RSA-SubCA/ca/conf/caCert.profile
    2. 次のパラメーターを追加します。

      Copy to Clipboard Toggle word wrap
      7.default.params.messageDigest=SHA-256
    3. ファイルを保存します。

    同様に、この CA が今後発行する CA 署名証明書に対しても同じ操作を行います。

    1. CA 署名証明書の登録プロファイルを開きます。

      Copy to Clipboard Toggle word wrap
      # vi /var/lib/pki/rhcs10-RSA-SubCA/ca/profiles/ca/caInstallCACert.cfg
      Copy to Clipboard Toggle word wrap
      # vi /var/lib/pki/rhcs10-RSA-SubCA/ca/profiles/ca/caCMCcaCert.cfg
    2. 次のパラメーターを追加します。

      Copy to Clipboard Toggle word wrap
      policyset.caCertSet.8.default.params.messageDigest=SHA-256
    3. ファイルを保存します。
  • ステップ間のその他の設定変更もここで実行できます。たとえば、このサブシステムの監査署名証明書の有効期間を延長する場合は、以下を実行します。

    1. 対応する設定ファイルを開きます。

      Copy to Clipboard Toggle word wrap
      # vi /var/lib/pki/rhcs10-RSA-SubCA/ca/profiles/ca/caInternalAuthAuditSigningCert.cfg
    2. 次の範囲パラメーターを目的の値に変更します。

      Copy to Clipboard Toggle word wrap
      policyset.auditSigningCertSet.2.constraint.params.range=720
      policyset.auditSigningCertSet.2.default.params.range=720
    3. ファイルを保存します。次のセクションに示す pkispawn のステップ 2 を実行すると、このサブシステムの監査署名証明書の有効性が、変更した値と一致するはずです。

SubCA インストールのステップ 2

この場合の pkispawn のステップ 2 では、同じファイルに対して別の方法でツールを実行し、RHCS CA インスタンスを設定します。

  • CA を設定するには、pkispawn ツールを実行します。

    Copy to Clipboard Toggle word wrap
    # pkispawn -s CA -f subca_inst.cfg --skip-installation --debug

検証手順

  1. インストールされている CA のステータスを表示します。

    Copy to Clipboard Toggle word wrap
    # pki-server status rhcs10-RSA-SubCA

    Unsecure EE、Secure EE、Agent、Admin、および pkiconsole の URL を書き留めます。

  2. 次のコマンドを実行して、CA の正常性を確認します。証明書が表示されるはずです。

    Copy to Clipboard Toggle word wrap
    # pki -p 8443 -h rhcs10.example.com ca-cert-find
注記

次のように、pki コマンドを使用して SubCA に初めて接続すると、信頼されていない CA 署名証明書の発行者として警告が表示されます。

Copy to Clipboard Toggle word wrap
WARNING: UNTRUSTED ISSUER encountered on 'CN=rhcs10.example.com,OU=rhcs10-RSA-SubCA,O=Example-rhcs10-RSA-RootCA' indicates a non-trusted CA cert 'CN=CA Signing Certificate,OU=rhcs10-RSA-SubCA,O=Example-rhcs10-RSA-RootCA'
Trust this certificate (y/N)?

サブジェクト DN が想定したホスト名と一致する場合は、y を選択して CA 署名証明書を信頼します。警告は再度表示されなくなります。

7.6.3. CA 証明書チェーンを更新する

これまでの手順で、RootCA 証明書を含む /opt/pki_rsa/ca-chain.pem ファイルを作成しています。ここでは、SubCA 証明書を追加して、この CA チェーンを更新する必要があります。

  1. SubCA 証明書を取得し、.pem ファイルに追加します。

    Copy to Clipboard Toggle word wrap
    # certutil -L -d /var/lib/pki/rhcs10-RSA-SubCA/alias -n "CA Signing Cert - rhcs10-RSA-SubCA" -a > /opt/pki_rsa/subCA.pem
  2. CA 証明書チェーンを更新します。以下に例を示します。

    Copy to Clipboard Toggle word wrap
    # cat /opt/pki_rsa/subCA.pem /opt/pki_rsa/rootCA.pem > /opt/pki_rsa/ca-chain.pem
注記

このサンプルインストールのコンテキストでは、証明書チェーンの順序は次のようにする必要があります。

  • チェーンは、.pem ファイルの最上位に配置されたリーフ証明書から始まります。
  • 次にその即時署名証明書が続きます。
  • チェーンは、最下位のルート証明書で終了します。
  1. ファイルを rhds11.example.com (DS インスタンスをホストするマシン) にコピーします。

    Copy to Clipboard Toggle word wrap
    # scp /opt/pki_rsa/subCA.pem root@rhds11.example.com:/opt/pki_rsa
    Copy to Clipboard Toggle word wrap
    # scp /opt/pki_rsa/ca-chain.pem root@rhds11.example.com:/opt/pki_rsa
  2. SubCA の DS インスタンスを再起動します。

    Copy to Clipboard Toggle word wrap
    # dsctl slapd-CC-RSA-SubCA-LDAP restart

7.6.4. SubCA ブートストラップ管理者証明書の設定

この手順では、ロールユーザー証明書の CMC 完全要求に署名する準備として、SubCA ブートストラップ証明書/キーを nssdb (この例では /root/.dogtag/pki_rsa_bootstrap/certs_db) にインポートします。

  1. オプション: これを実行したことがない場合は、RootCA 署名証明書を nssdb にインポートします。

    Copy to Clipboard Toggle word wrap
    # pki -d /root/.dogtag/pki_rsa_bootstrap/certs_db -c SECret.123 client-cert-import "CA Signing Cert - rhcs10-RSA-RootCA" --ca-cert /opt/pki_rsa/rootCA.pem
  2. SubCA 署名証明書を nssdb にインポートします。

    Copy to Clipboard Toggle word wrap
    # pki -d /root/.dogtag/pki_rsa_bootstrap/certs_db -c SECret.123 client-cert-import "CA Signing Cert - rhcs10-RSA-SubCA" --ca-cert /opt/pki_rsa/subCA.pem
  3. SubCA ブートストラップ証明書を nssdb にインポートします。

    Copy to Clipboard Toggle word wrap
    # pki -d /root/.dogtag/pki_rsa_bootstrap/certs_db -c SECret.123 client-cert-import --pkcs12 /opt/pki_rsa/rhcs10-RSA-SubCA/ca_admin_cert.p12 --pkcs12-password SECret.123
    
    ----------------------------------------
    Imported certificates from PKCS #12 file
    ----------------------------------------

検証:

  • nssdb の内容をリスト表示します。

    Copy to Clipboard Toggle word wrap
    # certutil -d /root/.dogtag/pki_rsa_bootstrap/certs_db -L
    
    Certificate Nickname                            Trust Attributes
                                                    SSL,S/MIME,JAR/XPI
    
    CA Signing Cert - rhcs10-RSA-RootCA             CT,C,C
    PKI Bootstrap Administrator for RSA-RootCA      u,u,u
    CA Signing Cert - rhcs10-RSA-SubCA              CT,C,C
    PKI Bootstrap Administrator for RSA-SubCA       u,u,u

7.6.5. CMC 以外およびインストール以外のプロファイルの無効化

プロファイルは /var/lib/pki/rhcs10-RSA-SubCA/ca/profiles/ca/ に保存されます。"CMC" プロファイルには、プロファイル ID に CMC が含まれています。このセクションでは、CMC とインストール以外のプロファイルを無効にする手順を説明します。

手順

  1. 編集する CMC 以外のプロファイルのリストを生成します。

    Copy to Clipboard Toggle word wrap
    # ls /var/lib/pki/rhcs10-RSA-SubCA/ca/profiles/ca | grep -v CMC | grep -v Install | grep -v caInternal | grep -v caECInternal | grep -v caAdminCert | grep -v caECAdminCert | tee /root/pki_rsa/subca-profile-deletelist.txt
  2. SubCA インスタンスを停止します。

    Copy to Clipboard Toggle word wrap
    pki-server stop rhcs10-RSA-SubCA
  3. リスト内のすべてのプロファイルについて、visibleenable パラメーターを true から false に変更します。たとえば、次のコマンドを使用して、visible=false および enable=false を設定します。

    Copy to Clipboard Toggle word wrap
    # cat /root/pki_rsa/subca-profile-deletelist.txt | while read line; do sed -i 's/^visible=true/visible=false/g' /var/lib/pki/rhcs10-RSA-SubCA/ca/profiles/ca/$line; sed -i 's/^enable=true/enable=false/g' /var/lib/pki/rhcs10-RSA-SubCA/ca/profiles/ca/$line; done
  4. さらに、caCMCUserCert プロファイルの visible パラメーターも false に変更します。

    Copy to Clipboard Toggle word wrap
    # sed -i 's/^visible=true/visible=false/' /var/lib/pki/rhcs10-RSA-SubCA/ca/profiles/ca/caCMCUserCert.cfg /var/lib/pki/rhcs10-RSA-SubCA/ca/profiles/ca/caCMCECUserCert.cfg
  5. SubCA インスタンスを起動します。

    Copy to Clipboard Toggle word wrap
    pki-server start rhcs10-RSA-SubCA
注記

SubCA ロールユーザー証明書に OCSP インスタンスを指す AIA 拡張 (次のセクションで作成する) を格納できるように、OCSP インスタンスの作成後、関連するセクション (「SubCA の作成と設定 (パート II)」) が配置されます。

7.6.6. CRL 配布ポイントのサポートを設定する

注記

CRL 配布ポイントの詳細、その必要性、最適な配置場所は、「CA での自動失効チェックの有効化」 を参照してください。

CRL 配布ポイントのサポートを設定するために、例として、ファイルベースの CRL パブリッシャーと CRL のパーティショニングの設定方法を説明します。また、証明書登録プロファイルを有効化し、CRL 配布ポイント拡張機能を使用して証明書を発行する方法も説明します。最後に、CA の LDAP サーバーの一時的な Server-Cert を、CRL 配布ポイントプロファイルから発行された証明書に置き換える方法を説明します。

次の変更に進む前に、SubCA インスタンスを停止します。

Copy to Clipboard Toggle word wrap
# pki-server stop rhcs10-RSA-SubCA

7.6.6.1. サーバー証明書 CRL ファイルの公開をサポートする CA セットアップ

注記

編集する前の設定ファイルのコピーを保存してから次に進んでください。

Copy to Clipboard Toggle word wrap
# cp /var/lib/pki/rhcs10-RSA-SubCA/conf/CS.cfg  /var/lib/pki/rhcs10-RSA-SubCA/conf/CS.cfg.bak.<date>
7.6.6.1.1. ファイルベースのパブリッシャーを設定する: crlFilePublisher

このセクションの設定では、crlFilePublisher と呼ばれるファイルベースの CRL パブリッシャーが作成されます。正しく設定されている場合、CRL は /var/lib/pki/rhcs10-RSA-SubCA/crl ディレクトリーに DER 形式で保存されます。

  1. ファイルベースのパーティション化された CRL を公開するための CRL ディレクトリーを作成します。

    Copy to Clipboard Toggle word wrap
    # mkdir /var/lib/pki/rhcs10-RSA-SubCA/crl
    # chown pkiuser.pkiuser /var/lib/pki/rhcs10-RSA-SubCA/crl
  2. CA の CS.cfg に以下を追加します。

    Copy to Clipboard Toggle word wrap
    ca.publish.publisher.instance.crlFilePublisher.Filename.b64=false
    ca.publish.publisher.instance.crlFilePublisher.Filename.der=true
    ca.publish.publisher.instance.crlFilePublisher.crlLinkExt=crl
    ca.publish.publisher.instance.crlFilePublisher.directory=/var/lib/pki/rhcs10-RSA-SubCA/crl
    ca.publish.publisher.instance.crlFilePublisher.latestCrlLink=true
    ca.publish.publisher.instance.crlFilePublisher.maxAge=0
    ca.publish.publisher.instance.crlFilePublisher.maxFullCRLs=0
    ca.publish.publisher.instance.crlFilePublisher.pluginName=FileBasedPublisher
    ca.publish.publisher.instance.crlFilePublisher.timeStamp=LocalTime
    ca.publish.publisher.instance.crlFilePublisher.zipCRLs=false
    ca.publish.publisher.instance.crlFilePublisher.zipLevel=9
7.6.6.1.2. ファイルベースの公開ルールを設定する: FileCrlRule

このセクションの設定では、FileCrlRule と呼ばれるファイルベースの公開ルールが作成されます。述語は、ServerCertCRL と呼ばれるパーティション化された CRL の CRL 発行ポイントを指定します (「プロファイル経由で発行された証明書の CRL パーティション設定をセットアップする」 で定義)。

  • CA の CS.cfg に以下を追加します。

    Copy to Clipboard Toggle word wrap
    ca.publish.rule.instance.FileCrlRule.enable=true
    ca.publish.rule.instance.FileCrlRule.mapper=NoMap
    ca.publish.rule.instance.FileCrlRule.pluginName=Rule
    ca.publish.rule.instance.FileCrlRule.predicate=issuingPointId==ServerCertCRL
    ca.publish.rule.instance.FileCrlRule.publisher=crlFilePublisher
    ca.publish.rule.instance.FileCrlRule.type=crl
7.6.6.1.3. LDAP ベースの公開ルールを変更する: LdapCrlRule

この設定では、マスター (完全) CRL に述語 LdapCrlRule を明示的に設定します。適切な OCSP サポートのために、マスター CRL は OCSP レスポンダーに継続的に提供されます。

  • CA の CS.cfg で以下を変更します。

    Copy to Clipboard Toggle word wrap
    ca.publish.rule.instance.LdapCrlRule.predicate=issuingPointId==MasterCRL
7.6.6.1.4. プロファイル経由で発行された証明書の CRL パーティション設定をセットアップする

このセクションの設定は、上記で定義した FileCrlRule で利用できる小さなサブセットに CRL を分割する方法を示しています。CRL は、profileList パラメーターで指定された証明書登録プロファイルによってパーティション化されます。複数のプロファイルには、コンマ区切りのリストを使用できます (例: caCMCserverCertWithCRLDP.cfg および caCMCECserverCertWithCRLDP.cfg)。

  • CA の CS.cfg に以下を追加します。

    Copy to Clipboard Toggle word wrap
    ca.crl.ServerCertCRL.allowExtensions=true
    ca.crl.ServerCertCRL.alwaysUpdate=false
    ca.crl.ServerCertCRL.autoUpdateInterval=240
    ca.crl.ServerCertCRL.caCertsOnly=false
    ca.crl.ServerCertCRL.cacheUpdateInterval=15
    ca.crl.ServerCertCRL.class=com.netscape.ca.CRLIssuingPoint
    ca.crl.ServerCertCRL.dailyUpdates=1:00
    ca.crl.ServerCertCRL.description=CA's Certificate Revocation List containing certificates issued via the caCMCserverCertWithCRLDP and caCMCECserverCertWithCRLDP enrollment profile
    ca.crl.ServerCertCRL.enable=true
    ca.crl.ServerCertCRL.enableCRLCache=false
    ca.crl.ServerCertCRL.enableCRLUpdates=true
    ca.crl.ServerCertCRL.enableCacheRecovery=true
    ca.crl.ServerCertCRL.enableCacheTesting=false
    ca.crl.ServerCertCRL.enableDailyUpdates=true
    ca.crl.ServerCertCRL.enableUpdateInterval=true
    ca.crl.ServerCertCRL.extendedNextUpdate=true
    ca.crl.ServerCertCRL.extension.AuthorityInformationAccess.accessLocation0=""
    ca.crl.ServerCertCRL.extension.AuthorityInformationAccess.accessLocationType0=URI
    ca.crl.ServerCertCRL.extension.AuthorityInformationAccess.accessMethod0=caIssuers
    ca.crl.ServerCertCRL.extension.AuthorityInformationAccess.class=com.netscape.cms.crl.CMSAuthInfoAccessExtension
    ca.crl.ServerCertCRL.extension.AuthorityInformationAccess.critical=false
    ca.crl.ServerCertCRL.extension.AuthorityInformationAccess.enable=false
    ca.crl.ServerCertCRL.extension.AuthorityInformationAccess.numberOfAccessDescriptions=1
    ca.crl.ServerCertCRL.extension.AuthorityInformationAccess.type=CRLExtension
    ca.crl.ServerCertCRL.extension.AuthorityKeyIdentifier.class=com.netscape.cms.crl.CMSAuthorityKeyIdentifierExtension
    ca.crl.ServerCertCRL.extension.AuthorityKeyIdentifier.critical=false
    ca.crl.ServerCertCRL.extension.AuthorityKeyIdentifier.enable=false
    ca.crl.ServerCertCRL.extension.AuthorityKeyIdentifier.type=CRLExtension
    ca.crl.ServerCertCRL.extension.CRLNumber.class=com.netscape.cms.crl.CMSCRLNumberExtension
    ca.crl.ServerCertCRL.extension.CRLNumber.critical=false
    ca.crl.ServerCertCRL.extension.CRLNumber.enable=true
    ca.crl.ServerCertCRL.extension.CRLNumber.type=CRLExtension
    ca.crl.ServerCertCRL.extension.CRLReason.class=com.netscape.cms.crl.CMSCRLReasonExtension
    ca.crl.ServerCertCRL.extension.CRLReason.critical=false
    ca.crl.ServerCertCRL.extension.CRLReason.enable=true
    ca.crl.ServerCertCRL.extension.CRLReason.type=CRLEntryExtension
    ca.crl.ServerCertCRL.extension.DeltaCRLIndicator.class=com.netscape.cms.crl.CMSDeltaCRLIndicatorExtension
    ca.crl.ServerCertCRL.extension.DeltaCRLIndicator.critical=true
    ca.crl.ServerCertCRL.extension.DeltaCRLIndicator.enable=false
    ca.crl.ServerCertCRL.extension.DeltaCRLIndicator.type=CRLExtension
    ca.crl.ServerCertCRL.extension.FreshestCRL.class=com.netscape.cms.crl.CMSFreshestCRLExtension
    ca.crl.ServerCertCRL.extension.FreshestCRL.critical=false
    ca.crl.ServerCertCRL.extension.FreshestCRL.enable=false
    ca.crl.ServerCertCRL.extension.FreshestCRL.numPoints=0
    ca.crl.ServerCertCRL.extension.FreshestCRL.pointName0=""
    ca.crl.ServerCertCRL.extension.FreshestCRL.pointType0=""
    ca.crl.ServerCertCRL.extension.FreshestCRL.type=CRLExtension
    ca.crl.ServerCertCRL.extension.InvalidityDate.class=com.netscape.cms.crl.CMSInvalidityDateExtension
    ca.crl.ServerCertCRL.extension.InvalidityDate.critical=false
    ca.crl.ServerCertCRL.extension.InvalidityDate.enable=true
    ca.crl.ServerCertCRL.extension.InvalidityDate.type=CRLEntryExtension
    ca.crl.ServerCertCRL.extension.IssuerAlternativeName.class=com.netscape.cms.crl.CMSIssuerAlternativeNameExtension
    ca.crl.ServerCertCRL.extension.IssuerAlternativeName.critical=false
    ca.crl.ServerCertCRL.extension.IssuerAlternativeName.enable=false
    ca.crl.ServerCertCRL.extension.IssuerAlternativeName.name0=""
    ca.crl.ServerCertCRL.extension.IssuerAlternativeName.nameType0=""
    ca.crl.ServerCertCRL.extension.IssuerAlternativeName.numNames=0
    ca.crl.ServerCertCRL.extension.IssuerAlternativeName.type=CRLExtension
    ca.crl.ServerCertCRL.extension.IssuingDistributionPoint.class=com.netscape.cms.crl.CMSIssuingDistributionPointExtension
    ca.crl.ServerCertCRL.extension.IssuingDistributionPoint.critical=true
    ca.crl.ServerCertCRL.extension.IssuingDistributionPoint.enable=false
    ca.crl.ServerCertCRL.extension.IssuingDistributionPoint.indirectCRL=false
    ca.crl.ServerCertCRL.extension.IssuingDistributionPoint.onlyContainsCACerts=false
    ca.crl.ServerCertCRL.extension.IssuingDistributionPoint.onlyContainsUserCerts=false
    ca.crl.ServerCertCRL.extension.IssuingDistributionPoint.onlySomeReasons=""
    ca.crl.ServerCertCRL.extension.IssuingDistributionPoint.pointName=
    ca.crl.ServerCertCRL.extension.IssuingDistributionPoint.pointType=
    ca.crl.ServerCertCRL.extension.IssuingDistributionPoint.type=CRLExtension
    ca.crl.ServerCertCRL.includeExpiredCerts=false
    ca.crl.ServerCertCRL.includeExpiredCertsOneExtraTime=false
    ca.crl.ServerCertCRL.minUpdateInterval=0
    ca.crl.ServerCertCRL.nextAsThisUpdateExtension=0
    ca.crl.ServerCertCRL.nextUpdateGracePeriod=0
    ca.crl.ServerCertCRL.profileCertsOnly=true
    ca.crl.ServerCertCRL.profileList=caCMCserverCertWithCRLDP,caCMCECserverCertWithCRLDP
    ca.crl.ServerCertCRL.publishOnStart=false
    ca.crl.ServerCertCRL.saveMemory=false
    ca.crl.ServerCertCRL.signingAlgorithm=SHA256withRSA
    ca.crl.ServerCertCRL.updateSchema=1
注記

ECC CA の場合は、SHA512withEC に以下を設定します。

Copy to Clipboard Toggle word wrap
ca.crl.ServerCertCRL.signingAlgorithm=SHA512withEC

7.6.6.2. CA で CRL HTTP サービスを設定する

CRL 配布ポイントが提供する CRL はファイルに公開されます (上記のセクションを参照)。このファイルは、以下に示すように CA の server.xml に追加している非 SSL Tomcat サービスによって提供されます。

  1. /var/lib/pki/rhcs10-RSA-SubCA/conf/server.xml ファイルで、Catalina サービスの 前に 次の CRL サービスを追加します。

    Copy to Clipboard Toggle word wrap
    <Service name="CRL">
     <Connector port="31085" protocol="HTTP/1.1" connectionTimeout="80000"
      maxParameterCount="1000" name="Unsecure" maxHttpHeaderSize="8192"
      acceptCount="100" maxThreads="15" minSpareThreads="25"
      enableLookups="false" disableUploadTimeout="true"/>
     <Engine name="CRL" defaultHost="localhost">
    	<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
       <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
        prefix="localhost_crl_access_log" suffix=".txt" pattern="common"/>
      </Host>
     </Engine>
    </Service>
  2. 上記の CRL サービスでは、使用されていないコネクターポート番号を選択します。たとえば、下位 CA の HTTP ポートが 31080 の場合は、31085 を選択します。SELinux 用のポートが追加されていることを確認します。以下は遅の例です。

    Copy to Clipboard Toggle word wrap
    # semanage port -a -t http_port_t -p tcp 31085
    # firewall-cmd --permanent --add-port=31085/tcp
    # firewall-cmd --reload
    注記

    選択したポートが別の SELinux コンテキストに事前に割り当てられている場合は、次のようなエラーメッセージが表示されます。

    Copy to Clipboard Toggle word wrap
    ValueError: Port tcp/31085 already defined

    次のコマンドを使用して、CRL HTTP ポートが事前に割り当てられているかどうかを検索して確認することもできます。

    Copy to Clipboard Toggle word wrap
    # semanage port -l | grep <port>

    割り当て済みの場合は別のポートを選択することが推奨されます。しかし、同じポートを使用する必要がある場合は、次の操作を実行できます。

    Copy to Clipboard Toggle word wrap
    # semanage port -m -t http_port_t -p tcp 31085
  3. サーバーを再起動すると、CA の conf ディレクトリーの下に CRL/localhost ディレクトリーが作成されます (存在しない場合に限る)。ただし、crl.xml ファイルの追加を準備するために、次の手順を実行します。

    Copy to Clipboard Toggle word wrap
    # mkdir -p  /var/lib/pki/rhcs10-RSA-SubCA/conf/CRL/localhost
    # chown -R pkiuser:pkiuser /var/lib/pki/rhcs10-RSA-SubCA/conf/CRL/localhost
  4. /var/lib/pki/rhcs10-RSA-SubCA/conf/CRL/localhost の下に crl.xml ファイルを作成し、次のコンテンツを追加します。

    Copy to Clipboard Toggle word wrap
    <Context docBase="/var/lib/pki/rhcs10-RSA-SubCA/crl">
     <Resources allowLinking="true" cachingAllowed="false" />
    </Context>
  5. crl.xml ファイルの user:group 所有権を設定します。

    Copy to Clipboard Toggle word wrap
    chown pkiuser:pkiuser  /var/lib/pki/rhcs10-RSA-SubCA/conf/CRL/localhost/crl.xml
注記

登録プロファイルに設定されている CRL 配布ポイントは http://rhcs10.example.com:31085/crl/ServerCertCRL.crl のようになります (完全な例は後続のセクションを参照してください)。

重要

ファイルベースの CRL パブリッシャーは、証明書の発行や失効の頻度が低い、より小さな CRL にのみ推奨されます。このセクションで説明する CA スタートアップセットアップのなど、必要な場合にのみ推奨されます。

7.6.6.3. CRL 配布ポイントを使用した CA の登録プロファイル設定

必要なプロファイルを有効にして、CRL 配布ポイントを追加します。これらは、上記のセクションの設定に対応するプロファイルです。

  1. /var/lib/pki/<ca instance directory/ca/profiles/ca/ ディレクトリーにある caCMCserverCertWithCRLDP.cfg プロファイル (RSA キーを使用した登録用) を開き、次のように更新します。

    Copy to Clipboard Toggle word wrap
    # vi /var/lib/pki/rhcs10-RSA-SubCA/ca/profiles/ca/caCMCserverCertWithCRLDP.cfg
    …
    enable=true
    …
    policyset.serverCertSet.10.default.params.crlDistPointsPointName_0=http://rhcs10.example.com:31085/crl/ServerCertCRL.crl
    …
  2. /var/lib/pki/<ca instance directory/ca/profiles/ca/ ディレクトリーにある caCMCECserverCertWithCRLDP.cfg (ECC キーを使用した登録用) を開き、次のように更新します。

    Copy to Clipboard Toggle word wrap
    # vi /var/lib/pki/rhcs10-ECC-SubCA/ca/profiles/ca/caCMCECserverCertWithCRLDP.cfg
    …
    enable=true
    …
    policyset.serverCertSet.10.default.params.crlDistPointsPointName_0=http://rhcs10.example.com:21085/crl/ServerCertCRL.crl
    …
  3. user:group の所有権を設定します。

    Copy to Clipboard Toggle word wrap
    # chown -R pkiuser:pkiuser  /var/lib/pki/rhcs10-RSA-SubCA/ca/profiles/ca/caCMCserverCertWithCRLDP.cfg
    # chown -R pkiuser:pkiuser  /var/lib/pki/rhcs10-RSA-SubCA/ca/profiles/ca/caCMCECserverCertWithCRLDP.cfg
  4. CA の CS.cfg に新しいプロファイルを登録します。

    1. 各プロファイルに次の行を追加します。

      Copy to Clipboard Toggle word wrap
      profile.caCMCserverCertWithCRLDP.class_id=caEnrollImpl
      profile.caCMCserverCertWithCRLDP.config=/var/lib/pki/rhcs10-RSA-SubCA/ca/profiles/ca/caCMCserverCertWithCRLDP.cfg
      
      profile.caCMCECserverCertWithCRLDP.class_id=caEnrollImpl
      profile.caCMCECserverCertWithCRLDP.config=/var/lib/pki/rhcs10-RSA-SubCA/ca/profiles/ca/caCMCECserverCertWithCRLDP.cfg
    2. profile.list エントリーを編集して、2 つの新しいプロファイルを追加します。以下に例を示します。

      Copy to Clipboard Toggle word wrap
      profile.list=caCMCserverCertWithCRLDP,caCMCECserverCertWithCRLDP,acmeServerCert,caCMCserverCert,caCMCECserverCert, …

7.6.6.4. より迅速な CRL 更新のための設定

サーバー証明書の筆耕頻度は高くないため、失効した場合はすぐに CRL を更新するべきです。CA の CS.cfg を編集します。

Copy to Clipboard Toggle word wrap
ca.crl.ServerCertCRL.alwaysUpdate=true

7.6.6.5. CA の設定が更新された後、CA を起動します

設定が完了された後、CA を起動します。

Copy to Clipboard Toggle word wrap
# pki-server start rhcs10-RSA-SubCA
注記

「一時 DS 証明書を置き換える (SubCA)」 の最後で CA の Directory Server の Server-Cert が正しく置き換えられると、CRL 配布ポイントの設定を確認するように指示されます。

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat, Inc.