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 トランスポート証明書を追加する必要があります。
- まず、CA を停止します。
# systemctl stop pki-tomcatd@ca_instance_name.service
以下に例を示します。# systemctl stop pki-tomcatd@pki-ca.service
- CA の
CS.cfg
に以下の行を追加します。ca.connector.KRA.transportCertNickname=KRA transport cert
以下に例を示します。ca.connector.KRA.transportCertNickname=transportCert cert-topology-02-KRA KRA
topology-02-KRA は、KRA のインスタンスの名前に置き換えます。 - 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
- CA の
CS.cfg
ファイルで指定されているニックネームを使用して、KRA トランスポート証明書を CA の nssdb にインポートします。- トランスポート証明書のニックネームをリスト表示します。
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
- 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