B.2. 制約に関する参考情報
制約は、証明書の許容される内容とその内容に関連付けられた値を定義するために使用されます。このセクションでは、それぞれの完全定義を含む事前定義された制約をリスト表示します。
B.2.1. Basic Constraints 拡張機能の制約
Basic Constraints 拡張制約は、証明書要求の基本制約がこの制約で設定された基準を満たしているかどうかを確認します。
パラメーター | 説明 |
---|---|
basicConstraintsCritical |
エクステンションは critical または noncritical のマークを付けるかどうかを指定します。この拡張機能をクリティカルとしてマークする場合は |
basicConstraintsIsCA |
証明書サブジェクトが CA であるかどうかを指定します。このパラメーター (CA) に |
basicConstraintsMinPathLen | 最小許容パスの長さ、つまり発行されている従属 CA 証明書の下 (従属) にチェーンできる CA 証明書の最大数を指定します。パスの長さは、証明書の検証時に使用する CA 証明書の数に影響します。このチェーンは、チェーンを検証して上に移動させるエンドエンティティー証明書で始まります。 拡張がエンドエンティティー証明書に設定されている場合、このパラメーターは機能しません。
許容値は
n は、ゼロよりも大きい整数でなければなりません。これは、使用されている従属 CA 証明書の下で許可される従属 CA 証明書の最小数です。 |
basicConstraintsMaxPathLen | 最大許容パスの長さ、つまり発行されている従属 CA 証明書の下 (従属) にチェーンできる CA 証明書の最大数を指定します。パスの長さは、証明書の検証時に使用する CA 証明書の数に影響します。このチェーンは、チェーンを検証して上に移動させるエンドエンティティー証明書で始まります。 拡張がエンドエンティティー証明書に設定されている場合、このパラメーターは機能しません。
許容値は
n は、ゼロよりも大きい整数でなければなりません。これは、使用されている従属 CA 証明書の下で許可される従属 CA 証明書の最大数です。 フィールドが空白の場合、パスの長さはデフォルトで、発行者の証明書の Basic Constraint 拡張機能で設定されたパスの長さによって決定されます。発行者のパスの長さが無制限の場合は、下位 CA 証明書のパスの長さも無制限です。発行者のパス長がゼロより大きい整数の場合、下位 CA 証明書のパス長は、発行者のパス長より 1 小さい値に設定されます。たとえば、発行者のパス長が 4 の場合、下位 CA 証明書のパス長は 3 に設定されます。 |
B.2.2. CA Validity 制約
CA Validity 制約は、証明書テンプレートの有効期間が CA の有効期間内にあるかどうかをチェックします。証明書の有効期間が CA 証明書の有効期間外である場合は、制約が拒否されます。
B.2.3. Extended Key Usage 拡張機能の制約
Extended Key Usage 拡張制約は、証明書の Extended Key Usage 拡張機能がこの制約で設定された基準を満たしているかどうかを確認します。
パラメーター | 説明 |
---|---|
exKeyUsageCritical |
|
exKeyUsageOIDs | キーの使用目的を特定する許容可能な OID を指定します。複数の OID をコンマ区切りのリストに追加できます。 |
B.2.4. Extension 制約
この制約は、一般的な拡張制約を実装します。拡張機能が存在するかどうかを確認します。
パラメーター | 説明 |
---|---|
extCritical |
エクステンションは critical または noncritical のマークを付けるかどうかを指定します。 |
extOID | 制約を渡すために証明書に存在する必要がある拡張の OID。 |
B.2.5. Key 制約
この制約は、RSA キーのキーのサイズと、EC キーの楕円曲線の名前を確認します。RSA キーで使用する場合、KeyParameters
パラメーターには有効なキーサイズのコンマ区切りリストが含まれ、EC キーで使用する場合、KeyParameters
パラメーターには使用可能な ECC 曲線のコンマ区切りリストが含まれます。
パラメーター | 説明 |
---|---|
keyType |
キーの種類を指定します。これはデフォルトで |
KeyParameters |
特定のキーパラメーターを定義します。キーに設定されるパラメーターは、
* RSA キーの場合、 |
B.2.6. Key Usage 拡張機能の制約
Key Usage 拡張制約は、証明書要求のキー使用制約がこの制約で設定された基準を満たしているかどうかを確認します。
パラメーター | 説明 |
---|---|
keyUsageCritical |
この拡張機能を critical としてマークするには |
keyUsageDigitalSignature |
SSL クライアント証明書と S/MIME 署名証明書を許可するかどうかを指定します。この値を set としてマークするには |
kleyUsageNonRepudiation |
S/MIME 署名証明書を設定するかどうかを指定します。この値を set としてマークするには .WARNING [WARNING] ==== このビットの使用については議論の余地があります。証明書に設定する前に、その使用による法的影響を慎重に検討してください。 |
keyEncipherment |
SSL サーバー証明書と S/MIME 暗号化証明書の拡張子を設定するかどうかを指定します。この値を set としてマークするには |
keyUsageDataEncipherment |
Key マテリアルではなくサブジェクトの公開鍵を使用してユーザーデータを暗号化する場合に拡張機能を設定するかどうかを指定します。この値を set としてマークするには |
keyUsageKeyAgreement |
サブジェクトの公開鍵がキー合意に使用されるたびに拡張を設定するかどうかを指定します。この値を set としてマークするには |
keyUsageCertsign |
この機能がすべての CA 署名証明書に適用されるかどうかを指定します。この値を set としてマークするには |
keyUsageCRLSign |
CRL に署名するのに使用する CA 署名証明書の拡張を設定するかどうかを指定します。この値を set としてマークするには |
keyUsageEncipherOnly |
公開鍵を使用してデータの暗号化のみに使用する場合に、拡張機能を設定するかどうかを指定します。このビットが設定されている場合は、 |
keyUsageDecipherOnly |
公開鍵をデータの解読にのみ使用する場合に、拡張子を設定するかどうかを指定します。このビットが設定されている場合は、 |
B.2.7. Netscape Certificate Type 拡張機能の制約
この制約は廃止されました。Netscape Certificate Type 拡張制約を使用する代わりに、Key Usage 拡張または Extended Key Usage 拡張を使用します。
Netscape Certificate Type 拡張制約は、証明書要求の Netscape Certificate Type 拡張がこの制約で設定された基準を満たしているかどうかをチェックします。
B.2.8. No Constraint
この制約は、制約が実装されていません。デフォルトとともに選択すると、そのデフォルトには制約は含まれません。
B.2.9. Renewal Grace Period 制約
Renewal Grace Period Constraint は、ユーザーが有効期限に基づいて証明書を更新できる時期に関するルールを設定します。たとえば、ユーザーは、有効期限が切れる前の特定の時間まで、または有効期限後の特定の時間を過ぎると、証明書を更新できません。
この制約を使用するときに覚えておくべき重要なことの 1 つは、この制約が更新プロファイルではなく、元の登録プロファイル に設定されていることです。更新猶予期間のルールは元の証明書の一部であり、引き継がれ、その後の更新に適用されます。
この制約は、No Default 拡張機能でのみ使用できます。
パラメーター | 説明 |
---|---|
renewal.graceAfter | 証明書の期限が切れた 後、更新用に提出できる期間を日数単位で設定します。証明書の有効期限が切れると、更新要求は拒否されます。値を指定しない場合、制限はありません。 |
renewal.graceBefore | 証明書の期限が切れる 前、更新用に提出できる期間を日数単位で設定します。証明書が有効期限にそれほど近くない場合、更新要求は拒否されます。値を指定しない場合、制限はありません。 |
B.2.10. Signing Algorithm 制約
署名アルゴリズム制約は、証明書要求の署名アルゴリズムがこの制約で設定された基準を満たしているかどうかを確認します。
パラメーター | 説明 |
---|---|
signingAlgsAllowed | 証明書の署名に指定できる署名アルゴリズムを設定します。アルゴリズムは以下のいずれか 1 つになります。
|
B.2.11. Subject Name 制約
Subject Name 制約は、証明書要求のサブジェクト名が基準を満たしているかどうかを確認します。
パラメーター | 説明 |
---|---|
Pattern | サブジェクト DN を構築する正規表現または他の文字列を指定します。 |
サブジェクト名と正規表現
Subject Name Constraint の正規表現は、正規表現を照合するための Java 機能によって照合されます。これらの正規表現形式のリストは、https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/regex/Pattern に記載されています。これにより、アスタリスク (\*) などのワイルドカードは、任意の数の文字とピリオド (.
) が、任意のタイプの文字を検索します。
たとえば、サブジェクト名制約のパターンが uid=.
に設定されている場合、証明書プロファイルフレームワークは、証明書要求のサブジェクト名がパターンと一致するかどうかを確認します。uid=user, o=Example, c=US
のようなサブジェクト名は、uid=.
というパターンに対応します。サブジェクト名 cn=user, o=example,c=US
はパターンを満たしません。uid=.
* は、サブジェクト名が uid
属性で始まる必要があることを意味します。ピリオドアスタリスク (.
*) ワイルドカードを使用すると、uid
の後に任意のタイプと文字数文字を続けることができます。
.ou=Engineering.
などの内部パターンが必要になる場合があります。これには、その前後で任意の種類の文字列を持つ ou=Engineering
属性が必要になります。これは、cn=jdoe,ou=internal,ou=west coast,ou=engineering,o="Example Corp",st=NC
だけでなく、uid=bjensen,ou=engineering,dc=example,dc=com
にも一致します。
最後に、オプションの間にパイプ記号 (|
) を設定することで、ある文字列または別の文字列のリクエストを許可することもできます。たとえば、ou=engineering,ou=people
または ou=engineering,o="Example Corp"
のいずれかを含むサブジェクト名を許可する場合、パターンは .ou=engineering,ou=people. | .ou=engineering,o="Example Corp".
になります。
ピリオド (.
) などの特殊文字を使用するパターンを作成する場合は、バックスラッシュ (\) で文字をエスケープします。たとえば、文字列 o="Example Inc."
を検索するには、パターンを o="Example Inc\." に設定します。
証明書の要求における Subject Name と UID または CN
サブジェクト DN を構築するために使用されるパターンは、証明書を要求する人の CN または UID に基づくこともできます。Subject Name Constraint は、証明書要求の DN で認識する CN (または UID) のパターンを設定し、Subject Name Default は、その CN に、事前定義されたディレクトリーツリーを使用して証明書のサブジェクト DN を作成します。
たとえば、証明書要求の CN を使用するには、次を実行します。
policyset.serverCertSet.1.constraint.class_id=subjectNameConstraintImpl policyset.serverCertSet.1.constraint.name=Subject Name Constraint policyset.serverCertSet.1.constraint.params.pattern=CN=[^,]+,.+ policyset.serverCertSet.1.constraint.params.accept=true policyset.serverCertSet.1.default.class_id=subjectNameDefaultImpl policyset.serverCertSet.1.default.name=Subject Name Default policyset.serverCertSet.1.default.params.name=CN=$request.req_subject_name.cn$,DC=example, DC=com
B.2.12. Unique Key 制約
この制約は、公開鍵が一意であることを確認します。
パラメーター | 説明 |
---|---|
allowSameKeyRenewal |
公開鍵は一意でなく、かつ サブジェクト DN が既存の証明書と一致し、このパラメーターが
このパラメーターが |
B.2.13. Unique Subject Name 制約
Unique Subject Name 制約は、サーバーが同じサブジェクト名で複数の証明書を発行することを制限します。証明書要求が送信されると、サーバーは自動的にニックネームを他の発行された証明書のニックネームと照合します。この制約は、エンドエンティティーのページからの証明書の登録と更新に適用できます。
1 つの証明書の有効期限が切れているか取り消されていない限り (保留されていない場合)、証明書に同じサブジェクト名を付けることはできません。したがって、アクティブな証明書はサブジェクト名を共有できません。ただし、例外が 1 つあります。証明書のキー使用ビットが異なる場合は、使用法が異なるため、同じサブジェクト名を共有できます。
パラメーター | 説明 |
---|---|
enableKeyUsageExtensionChecking |
キーの使用設定が異なる限り、証明書が同じサブジェクト名を持つことを許可するオプションの設定。これは |
B.2.14. Validity 制約
Validity 制約は、証明書要求の有効期間が基準を満たしているかどうかを確認します。
提供されるパラメーターは、適切な値でなければなりません。たとえば、すでに経過した時間を指定する notBefore
パラメーターは受け入れられず、notBefore
の時間よりも前の時間を指定する notAfter
パラメーターも受け入れられません。
パラメーター | 説明 |
---|---|
range |
有効期間の範囲。日数を設定する整数です。 |
notBeforeCheck |
範囲が猶予期間内ではないことを確認します。 |
notBeforeGracePeriod |
|
notAfterCheck |
指定された時間が期限切れの期間後にないかどうかを確認します。 |