14.9. CA EE Portal を使用した証明書の登録のサーバー専用鍵生成の設定

本セクションでは、CA EE ポータルを使用して、証明書登録の Server-Side Key Generation を設定する方法を説明します。

14.9.1. インストール設定

注記
サーバー側 Keygen を設定するには、CA に加えて KRA インスタンスが必要です。
注記
CA と KRA が Tomcat インスタンスを共有している場合は、以下の手順を実行してトランスポート証明書をインポートする必要はありません。
CA インスタンスおよび KRA インスタンスをインストールした後に、スタンドアロンの Tomcat Web サーバーインスタンスの場合には、CA の nssdb に KRA トランスポート証明書を追加する必要があります。
  1. まず、CA を停止します。
    # systemctl stop pki-tomcatd@ca_instance_name.service
    以下に例を示します。
    # systemctl stop pki-tomcatd@pki-ca.service
  2. CA の CS.cfg に以下の行を追加します。
    ca.connector.KRA.transportCertNickname=KRA transport cert
    以下に例を示します。
    ca.connector.KRA.transportCertNickname=transportCert cert-topology-02-KRA KRA
    topology-02-KRA は、KRA のインスタンスの名前に置き換えます。
  3. KRA トランスポート証明書を検索し、ファイルにエクスポートします。
    # grep "kra.transport.cert=" /var/lib/pki/kra_instance_name/kra/conf/CS.cfg | sed 's/kra.transport.cert=//' > kra transport cert file
    以下に例を示します。
    # grep "kra.transport.cert=" /var/lib/pki/pki-kra/kra/conf/CS.cfg | sed 's/kra.transport.cert=//' > /tmp/kraTransport.cert
  4. CA の CS.cfg ファイルで指定されているニックネームを使用して、KRA トランスポート証明書を CA の nssdb にインポートします。
    1. トランスポート証明書のニックネームを一覧表示します。
    grep "ca.connector.KRA.transportCertNickname" /var/lib/pki/ca_instance_name/ca/conf/CS.cfg
    以下に例を示します。
    # grep "ca.connector.KRA.transportCertNickname" /var/lib/pki/pki-ca/ca/conf/CS.cfg
    								ca.connector.KRA.transportCertNickname=KRA transport cert
    
    • 前の手順に記載されているニックネームを使用して証明書をインポートします。
    certutil -d /var/lib/pki/ca_instance_name/alias -A -t “,,” -n transportNickName -i kra transport cert file
    以下に例を示します。
    # certutil -d /var/lib/pki/pki-ca/alias -A -t “,,” -n "KRA transport cert" -i /tmp/kraTransport.cert
  5. CA を起動します。
    # systemctl start pki-tomcatd@ca_instance_name.service
    以下に例を示します。
    # systemctl start pki-tomcatd@pki-ca.service

14.9.2. プロファイル設定

サーバー側で鍵が生成される証明書の登録を許可するために、caServerKeygen_UserCert および caServerKeygen_DirUserCert の 2 つのデフォルトプロファイルがデフォルトで提供されます。ただし、正しい入力、出力、およびポリシー設定を持つプロファイルは、サーバー側の keygen プロファイルに切り替えることができます。
Server-Side Keygen プロファイルには、以下のコンポーネントが含まれている必要があります。

入力

input.i1.class_id=serverKeygenInputImpl

出力

output.o1.class_id=pkcs12OutputImpl

Policyset

キータイプとキーサイズのパラメーターは、以下に例示するように設定できます。
policyset.userCertSet.3.constraint.class_id=keyConstraintImpl
policyset.userCertSet.3.constraint.name=Key Constraint
policyset.userCertSet.3.constraint.params.keyType=-
policyset.userCertSet.3.constraint.params.keyParameters=1024,2048,3072,4096,nistp256,nistp384,nistp521
policyset.userCertSet.3.default.class_id=serverKeygenUserKeyDefaultImpl
policyset.userCertSet.3.default.name=Server-Side Keygen Default
policyset.userCertSet.3.default.params.keyType=RSA
policyset.userCertSet.3.default.params.keySize=2048
policyset.userCertSet.3.default.params.enableArchival=true

認証

デフォルトのサーバー側の keygen 登録プロファイルは認証メカニズムによって異なります。ここでは、以下のようになります。
  • caServerKeygen_UserCert.cfg
    "auth.class_id=" への空の値が含まれます。つまり、このプロファイルを介した登録要求には CA エージェントからの承認が必要になります。
  • caServerKeygen_DirUserCert.cfg
    これには、"auth.instance_id=UserDirEnrollment" が含まれます。これは、ユーザーが LDAP uid/password 認証を渡すのに必要なことを意味します。このような認証は、CA エージェントからの要求ごとの承認を必要としないため、自動証明書として見なされます。
    caServerKeygen_DirUserCert.cfg プロファイルで説明されるように、auth.instance_id ディレクティブを互換性のある認証プラグインクラスに設定すると、自動承認を設定できます。CS.cfg ファイルでこのような設定の例を、以下に示します。
    auths.instance.UserDirEnrollment.dnpattern=
    auths.instance.UserDirEnrollment.ldap.basedn=ou=People,dc=example,dc=com
    auths.instance.UserDirEnrollment.ldap.ldapconn.host=host.example.com
    auths.instance.UserDirEnrollment.ldap.ldapconn.port=389
    auths.instance.UserDirEnrollment.ldap.ldapconn.secureConn=false
    auths.instance.UserDirEnrollment.ldap.maxConns=
    auths.instance.UserDirEnrollment.ldap.minConns=
    auths.instance.UserDirEnrollment.ldapByteAttributes=
    auths.instance.UserDirEnrollment.ldapStringAttributes=mail
    auths.instance.UserDirEnrollment.pluginName=UidPwdDirAuth