第15章 証明書プロファイルの設定
CA のインストールプロセスの一部として、プロファイルの設定ファイルを変更することにより、証明書登録プロファイルをファイルシステム上で直接変更できます。インストール時のデフォルトプロファイルにはデフォルトファイルが存在します。新しいプロファイルが必要な場合は、新しいプロファイル設定ファイルを作成します。設定ファイルは CA プロファイルディレクトリーである instance_directory/ca/profiles/ca/ に保存されます (例: /var/lib/pki/pki-ca/ca/profiles/ca/)。ファイル名は profile_name.cfg です。プロファイルルールのパラメーターはすべて、これらのプロファイル設定ファイルで設定または変更できます。プロファイルルールは、入力、出力、認証、承認、デフォルト、および制約を使用できます。
CA 証明書の登録プロファイルは、*.profile という名前の /var/lib/pki/ instance_name/ca/conf ディレクトリーにあります。
監査上の理由から、この方法は、デプロイメント前の CA のインストール中にのみ使用してください。
プロファイル設定ファイルを編集して変更を有効にした後、サーバーを再起動します。
15.1. CA 以外のシステム証明書プロファイルの設定 リンクのコピーリンクがクリップボードにコピーされました!
15.1.1. プロファイル設定パラメーター リンクのコピーリンクがクリップボードにコピーされました!
プロファイルルールのすべてのパラメーター (デフォルト、入力、出力、および制約) は、単一のポリシーセット内で設定されます。プロファイルに設定されたポリシーの名前は policyset.policyName.policyNumber です。以下に例を示します。
policyset.cmcUserCertSet.6.constraint.class_id=noConstraintImpl policyset.cmcUserCertSet.6.constraint.name=No Constraint policyset.cmcUserCertSet.6.default.class_id=userExtensionDefaultImpl policyset.cmcUserCertSet.6.default.name=User Supplied Key Default policyset.cmcUserCertSet.6.default.params.userExtOID=2.5.29.15
policyset.cmcUserCertSet.6.constraint.class_id=noConstraintImpl
policyset.cmcUserCertSet.6.constraint.name=No Constraint
policyset.cmcUserCertSet.6.default.class_id=userExtensionDefaultImpl
policyset.cmcUserCertSet.6.default.name=User Supplied Key Default
policyset.cmcUserCertSet.6.default.params.userExtOID=2.5.29.15
一般的なプロファイル設定パラメーターは、表15.1「プロファイル設定ファイルのパラメーター」 で説明されています。
| パラメーター | 説明 |
|---|---|
| desc | エンドエンティティーページに表示される証明書プロファイルのフリーテキストの説明を提供します。たとえば、desc=This certificate profile is for enrolling server certificates with agent authentication. です。 |
| enable | プロファイルを有効にするかどうかを設定します。したがって、エンドエンティティーページからアクセスできます。たとえば、enable=true とします。 |
| auth.instance_id |
プロファイルを介して送信された証明書要求の認証に使用する認証マネージャープラグインを設定します。自動登録では、認証に成功すると CA は証明書をすぐに発行します。認証が失敗した場合、または認証プラグインが指定されていない場合、リクエストはキューに入れられ、エージェントによって手動で承認されます。たとえば、auth.instance_id=CMCAuth となります。認証方法は、 |
| authz.acl | 承認制約を指定します。最も一般的なものは、グループ評価 ACL を設定するのに使用されます。たとえば、この caCMCUserCert パラメーターでは、CMC 要求の署名者が Certificate Manager Agents グループに属している必要があります。 authz.acl=group="Certificate Manager Agents" ディレクトリーベースのユーザー証明書の更新では、このオプションを使用して、元の要求元と現在の認証ユーザーが同じであることを確認します。
エンティティーは、承認を評価する前に、認証 (バインド、または基本的にシステムへのログイン) を行う必要があります。認証メソッドは、 |
| name | プロファイルの名前を指定します。たとえば、name=Agent-Authenticated サーバー証明書の登録 などです。この名前は、エンドユーザーの登録または更新ページに表示されます。 |
| input.list | 名前でプロファイルに許可されている入力をリスト表示します。たとえば、input.list=i1,i2 です。 |
| input.input_id.class_id | 入力 ID (input.list にリストされている入力の名前) によって入力の Java クラス名を指定します。たとえば、input.i1.class_id=cmcCertReqInputImpl です。 |
| output.list | プロファイルの可能な出力形式を名前でリストします。たとえば、output.list=o1 です。 |
| output.output_id.class_id | output.list で指定された出力形式の Java クラス名を指定します。たとえば、output.o1.class_id=certOutputImpl です。 |
| policyset.list | 設定したプロファイルルールをリスト表示します。二重証明書の場合は、1 セットのルールが署名キーに適用され、もう 1 セットが暗号化キーに適用されます。1 つの証明書で使用するプロファイルは、1 つのプロファイルルールセットだけです。たとえば、policyset.list=serverCertSet です。 |
| policyset.policyset_id.list | プロファイル用に設定されたポリシーセット内のポリシーを、評価する必要のある順序でポリシー ID 番号別にリスト表示します。たとえば、policyset.serverCertSet.list=1,2,3,4,5,6,7,8 のようになります。 |
| policyset._policyset_id.policy_number._constraint.class_id | プロファイルルールで設定されたデフォルトに設定された制約プラグインの Java クラス名を指定します。たとえば、policyset.serverCertSet.1.constraint.class_id=subjectNameConstraintImpl です。 |
| policyset._policyset_id.policy_number._constraint.name | 制約のユーザー定義の名前を指定します。たとえば、policyset.serverCertSet.1.constraint.name=Subject Name Constraint などです。 |
| policyset.policyset_id.policy_number._constraint.params._attribute | 制約に許可される属性値を指定します。設定可能な属性は、制約の種類によって異なります。たとえば、policyset.serverCertSet.1.constraint.params.pattern=CN=.* です。 |
| policyset._policyset_id.policy_number._default.class_id | プロファイルルールに、デフォルトセットの java クラス名を指定します。たとえば、policyset.serverCertSet.1.default.class_id=userSubjectNameDefaultImpl です。 |
| policyset._policyset_id.policy_number._default.name | デフォルトのユーザー定義の名前を指定します。たとえば、policyset.serverCertSet.1.default.name=Subject Name Default です。 |
| policyset.policyset_id.policy_number._default.params._attribute | デフォルトに対して許可される属性の値を指定します。設定可能な属性は、デフォルトの種類によって異なります。たとえば、policyset.serverCertSet.1.default.params.name=CN=(Name)$request.requestor_name$ です。 |
15.1.2. ファイルシステムで証明書拡張機能を直接変更する リンクのコピーリンクがクリップボードにコピーされました!
制約を変更すると、指定できる情報の種類に制限があります。デフォルトと制約を変更すると、証明書要求から受け入れられる、または必要とされる拡張子を追加、削除、または変更することもできます。
たとえば、デフォルトの caFullCMCUserCert プロファイルは、リクエストの情報からキーの使用拡張を作成するように設定されています。
デフォルトは、ユーザーが指定するキー拡張機能を許可するように更新されます。
policyset.cmcUserCertSet.6.default.class_id=userExtensionDefaultImpl policyset.cmcUserCertSet.6.default.name=User Supplied Key Default policyset.cmcUserCertSet.6.default.params.userExtOID=2.5.29.15
policyset.cmcUserCertSet.6.default.class_id=userExtensionDefaultImpl
policyset.cmcUserCertSet.6.default.name=User Supplied Key Default
policyset.cmcUserCertSet.6.default.params.userExtOID=2.5.29.15
これにより、証明書リクエストで、拡張 OID 2.5.29.15 を受け入れるようにサーバーが設定されます。
その他の制約やデフォルトも同じように変更できます。必要な制約が適切なデフォルト値に含まれていることを確認し、別の制約が必要な場合にデフォルトが変更され、許可される制約のみがデフォルトで使用されます。詳細は、Red Hat Certificate System 管理ガイド の デフォルトのリファレンス および 成約のリファレンス セクションを参照してください。
15.1.2.1. 主な使用方法および拡張キー使用の一貫性 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Certificate System は、環境の要件を満たすように、管理者がカスタム登録プロファイルを作成するための柔軟なインフラストラクチャーを提供します。ただし、プロファイルでは RFC 5280 で定義された要件に違反する証明書を発行できません。キー使用法 (KU) と拡張キー使用法 (EKU) の両方の拡張機能が存在する登録プロファイルを作成する場合は、セクション 4.2.1.12 に従って、2 つの拡張機能間の整合性が維持されていることを確認することが重要です。RFC 5280 の拡張鍵使用。
KU 拡張機能の詳細は、以下を参照してください。
次の表に、一貫したキー使用ビットを各目的の拡張キー使用拡張にマップするガイドラインを示します。
| 目的/拡張キー使用方法 | 主な使用方法 |
|---|---|
| TLS サーバー認証コマンド
|
|
| TLS クライアント (相互) 認証
|
|
| コード署名
|
|
| メール保護
|
|
| OCSP レスポンスの署名
|
|
以下は、一貫性のない EKU/KU の例を 2 つ示しています。
OCSP 応答署名を目的とした登録プロファイルには、拡張キーの使用法
id-kp-OCSPSigningが含まれていますが、keyEnciphermentキー使用法ビットとともに使用されます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow TLS サーバー認証の目的を目的とする登録プロファイルは、拡張キー
usage id-kp-serverAuthですが、CRL 署名鍵の使用ビットを使用します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Red Hat Certificate System 管理ガイド の 主な使用拡張機能の制約 セクション
- Red Hat Certificate System 管理ガイド の keyUsage セクション
EKU 拡張機能の詳細は、以下を参照してください。
- Red Hat Certificate System 管理ガイド の 主な使用拡張機能の制約 セクション
- Red Hat Certificate System 管理ガイド の extKeyUsage セクション
15.1.2.2. クロスペアプロファイルの設定 リンクのコピーリンクがクリップボードにコピーされました!
クロスペア証明書は、信頼パートナー関係を確立する別の CA 署名証明書であり、これにより、これら 2 つの別個の PKI のエンティティーが相互に信頼します。両方のパートナー CA は、その他の CA 署名証明書をデータベースに保存するため、他の PKI 内で発行されたすべての証明書は信頼され、認識されます。
Certificate System がサポートする 2 つの拡張は、このような信頼パートナー関係 (相互認証) を確立するために使用できます。
-
証明書ポリシー拡張 (
CertificatePoliciesExtension) は、証明書が該当する条件を指定します。これは、多くの場合、PKI ごとに一意です。 -
ポリシーマッピング拡張機能 (
PolicyMappingExtension) は、2 つの環境の証明書プロファイルをマッピングすることにより、2 つの PKI 間の信頼をシールします。
クロスペアの証明書を発行するには、証明書ポリシー拡張が必要です。これは、Red Hat Certificate System 管理ガイド の付録 certificatePoliciesExt で説明されています。
発行された証明書に CertificatePoliciesExtension が含まれていることを確認するには、登録プロファイルに適切なポリシールールを含める必要があります。次に例を示します。
この例の登録プロファイルで発行された証明書には、次の情報が含まれます。
Identifier: Certificate Policies: - 2.5.29.32 Critical: no Certificate Policies: Policy Identifier: 1.1.1.1
Identifier: Certificate Policies: - 2.5.29.32
Critical: no
Certificate Policies:
Policy Identifier: 1.1.1.1
クロスペア証明書の使用の詳細は、Red Hat Certificate System 管理ガイド の クロスペアの証明書の使用 セクションを参照してください。
クロスペア証明書の公開の詳細は、Red Hat Certificate System 管理ガイド の クロスペアの証明書の公開 セクションを参照してください。
15.1.3. ファイルシステムへのプロファイル入力の直接追加 リンクのコピーリンクがクリップボードにコピーされました!
CA の profiles/ca ディレクトリーにある証明書プロファイル設定ファイルには、その特定の証明書プロファイルフォームの入力情報が含まれます。入力は、エンドエンティティーページ登録フォームのフィールドです。そのプロファイルに含まれる入力を一覧表示するパラメーター input.list があります。その他のパラメーターは入力を定義します。これらは input.ID 形式で識別されます。たとえば、これにより一般的な入力がプロファイルに追加されます。
利用可能な入力やフォームフィールドの詳細は、Red Hat Certificate System 管理ガイド の 入力の参照 セクションを参照してください。