B.2. 制約の参照

制約は、証明書の許容される内容とその内容に関連付けられた値を定義するために使用されます。このセクションでは、それぞれの完全定義を含む事前定義された制約を一覧表示します。

B.2.1. Basic Constraints 拡張機能制約

Basic Constraints 拡張制約は、証明書要求の基本制約がこの制約で設定された基準を満たしているかどうかを確認します。

表B.25 Basic Constraints 拡張機能の制約設定パラメーター

パラメーター 説明
basicConstraintsCritical エクステンションは critical または noncritical のマークを付けるかどうかを指定します。この拡張機能をクリティカルとしてマークする場合は true を選択します。この拡張機能がクリティカルとしてマークされないようにするには、false を選択します。ハイフン - を選択しても、影響度が重大を意味します。
basicConstraintsIsCA 証明書サブジェクトが CA であるかどうかを指定します。true を選択すると、(CA である) このパラメーターに true の値を要求します。false を選択して、このパラメーターの true の値を無効にします。ハイフン - を選択すると、このパラメーターに制約を設定しないことを示します。
basicConstraintsMinPathLen
最小許容パスの長さ、つまり発行されている従属 CA 証明書の下 (従属) にチェーンできる CA 証明書の最大数を指定します。パスの長さは、証明書の検証時に使用する CA 証明書の数に影響します。このチェーンは、チェーンを検証して上に移動させるエンドエンティティー証明書で始まります。
拡張がエンドエンティティー証明書に設定されている場合、このパラメーターは機能しません。
許容値は 0 または n です。値は、CA 署名証明書の Basic Constraint 拡張で指定されたパスの長さよりも短くする必要があります。
0 は、発行されている従属 CA 証明書の下に従属 CA 証明書を許可しないことを指定します。パスをたどることができるのは、エンドエンティティー証明書のみです。
n は、ゼロよりも大きい整数でなければなりません。これは、使用されている従属 CA 証明書の下で許可される従属 CA 証明書の最小数です。
basicConstraintsMaxPathLen
最大許容パスの長さ、つまり発行されている従属 CA 証明書の下 (従属) にチェーンできる CA 証明書の最大数を指定します。パスの長さは、証明書の検証時に使用する CA 証明書の数に影響します。このチェーンは、チェーンを検証して上に移動させるエンドエンティティー証明書で始まります。
拡張がエンドエンティティー証明書に設定されている場合、このパラメーターは機能しません。
許容値は 0 または n です。値は、CA 署名証明書の Basic Constraints 拡張で指定されたパスの長さよりも大きくする必要があります。
0 は、発行されている従属 CA 証明書の下に従属 CA 証明書を許可しないことを指定します。パスをたどることができるのは、エンドエンティティー証明書のみです。
n は、ゼロよりも大きい整数でなければなりません。これは、使用されている従属 CA 証明書の下で許可される従属 CA 証明書の最大数です。
フィールドが空白の場合、パスの長さはデフォルトで、発行者の証明書の Basic Constraint 拡張機能で設定されたパスの長さによって決定されます。発行者のパスの長さが無制限の場合は、下位 CA 証明書のパスの長さも無制限です。発行者のパス長がゼロより大きい整数の場合、下位 CA 証明書のパス長は、発行者のパス長より 1 小さい値に設定されます。たとえば、発行者のパス長が 4 の場合、下位 CA 証明書のパス長は 3 に設定されます。

B.2.2. CA Validity 制約

CA 有効性制約は、証明書テンプレートの有効期間が CA の有効期間内にあるかどうかをチェックします。証明書の有効期間が CA 証明書の有効期間外である場合は、制約が拒否されます。

B.2.3. 拡張された鍵使用拡張制約

Extended Key Usage 拡張制約は、証明書の Extended Key Usage 拡張機能がこの制約で設定された基準を満たしているかどうかを確認します。

表B.26 拡張された主な使用拡張制約設定パラメーター

パラメーター 説明
exKeyUsageCritical true に設定すると、エクステンションは重要であるとマークできます。false に設定すると、拡張は重要でないとしてマークできます。
exKeyUsageOIDs キーの使用目的を特定する許容可能な OID を指定します。複数の OID をコンマ区切りの一覧に追加できます。

B.2.4. 拡張制約

この制約は、一般的な拡張制約を実装します。拡張機能が存在するかどうかを確認します。

表B.27 拡張制約

パラメーター 説明
extCritical エクステンションは critical または noncritical のマークを付けるかどうかを指定します。true を選択して拡張機能を重要 (Critical) とマークします。false を選択して、非クリティカルにマークします。- を選択して、優先なしを強制します。
extOID 制約を渡すために証明書に存在する必要がある拡張の OID。

B.2.5. 主要な制約

この制約は、RSA キーのキーのサイズと、EC キーの楕円曲線の名前を確認します。RSA キーと一緒に使用すると、KeyParameters パラメーターには、有効なキーサイズのコンマ区切りリストが含まれ、EC キーの場合は KeyParameters パラメーターには、使用可能な ECC 曲線のコンマ区切りのリストが含まれています。

表B.28 キー制約の設定パラメーター

パラメーター 説明
keyType キーの種類を指定します。これはデフォルトで - に設定されており、RSA キーシステムを使用します。rsa と ec を選択できます。キータイプが指定され、システムで識別されていない場合、制約は拒否されます。
KeyParameters 特定のキーパラメーターを定義します。キーに設定されるパラメーターは、keyType パラメーターの値によって異なります (つまり、キータイプによって異なります)。
  • RSA 鍵では、KeyParameters パラメーターに有効な鍵サイズのコンマ区切りリストが含まれます。
  • ECC キーでは、KeyParameters パラメーターに、利用可能な ECC 曲線のコンマ区切りリストが含まれます。

B.2.6. 主な使用拡張機能の制約

Key Usage 拡張制約は、証明書要求のキー使用制約がこの制約で設定された基準を満たしているかどうかを確認します。

表B.29 主な使用拡張制約設定パラメーター

パラメーター 説明
keyUsageCritical true を選択して、この拡張機能を重要としてマークします。false を選択して、非クリティカルにマークします。設定しない場合は - を選択します。
keyUsageDigitalSignature SSL クライアント証明書と S/MIME 署名証明書を許可するかどうかを指定します。この値を set としてマークするには true を選択します。選択されないようにするには false を選択します。このパラメーターに制約がないことを示するには、ハイフン (-) を選択します。
kleyUsageNonRepudiation S/MIME 署名証明書を設定するかどうかを指定します。この値を set としてマークするには true を選択します。選択されないようにするには false を選択します。このパラメーターに制約がないことを示するには、ハイフン (-) を選択します。
警告
このビットの使用は議論の的になっています。証明書に設定する前に、その使用による法的影響を慎重に検討してください。
keyEncipherment SSL サーバー証明書と S/MIME 暗号化証明書の拡張子を設定するかどうかを指定します。この値を set としてマークするには true を選択します。選択されないようにするには false を選択します。このパラメーターに制約がないことを示するには、ハイフン (-) を選択します。
keyUsageDataEncipherment キーマテリアルの代わりに、サブジェクトの公開キーを使用してユーザーデータを暗号化するときに、拡張子を設定するかどうかを指定します。この値を set としてマークするには true を選択します。選択されないようにするには false を選択します。このパラメーターに制約がないことを示するには、ハイフン (-) を選択します。
keyUsageKeyAgreement サブジェクトの公開鍵がキー合意に使用されるたびに拡張を設定するかどうかを指定します。この値を set としてマークするには true を選択します。選択されないようにするには false を選択します。このパラメーターに制約がないことを示するには、ハイフン (-) を選択します。
keyUsageCertsign この機能がすべての CA 署名証明書に適用されるかどうかを指定します。この値を set としてマークするには true を選択します。選択されないようにするには false を選択します。このパラメーターに制約がないことを示するには、ハイフン (-) を選択します。
keyUsageCRLSign CRL に署名するのに使用する CA 署名証明書の拡張を設定するかどうかを指定します。この値を set としてマークするには true を選択します。選択されないようにするには false を選択します。このパラメーターに制約がないことを示するには、ハイフン (-) を選択します。
keyUsageEncipherOnly 公開鍵を使用してデータの暗号化のみに使用する場合に、拡張機能を設定するかどうかを指定します。このビットが設定されている場合は、keyUsageKeyAgreement も設定する必要があります。この値を set としてマークするには true を選択します。選択されないようにするには false を選択します。このパラメーターに制約がないことを示するには、ハイフン (-) を選択します。
keyUsageDecipherOnly 公開鍵をデータの解読にのみ使用する場合に、拡張子を設定するかどうかを指定します。このビットが設定されている場合は、keyUsageKeyAgreement も設定する必要があります。この値を set としてマークするには true を選択します。選択されないようにするには false を選択します。このパラメーターに制約がないことを示するには、ハイフン (-) を選択します。

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 拡張機能でのみ使用できます。

表B.30 Renewal Grace Period 制約設定パラメーター

パラメーター 説明
renewal.graceAfter 証明書の期限が切れた 、更新用に提出できる期間を日数単位で設定します。証明書の有効期限が切れると、更新要求は拒否されます。値を指定しない場合、制限はありません。
renewal.graceBefore 証明書の期限が切れる 、更新用に提出できる期間を日数単位で設定します。証明書が有効期限にそれほど近くない場合、更新要求は拒否されます。値を指定しない場合、制限はありません。

B.2.10. アルゴリズム制約の署名

署名アルゴリズム制約は、証明書要求の署名アルゴリズムがこの制約で設定された基準を満たしているかどうかを確認します。

表B.31 アルゴリズム制約設定パラメーターの署名

パラメーター 説明
signingAlgsAllowed 証明書の署名に指定できる署名アルゴリズムを設定します。アルゴリズムは以下のいずれか 1 つになります。
  • MD2withRSA
  • MD5withRSA
  • SHA256withRSA
  • SHA512withRSA
  • SHA256withEC
  • SHA384withEC
  • SHA512withEC

B.2.11. Subject Name 制約

Subject Name 制約は、証明書要求のサブジェクト名が基準を満たしているかどうかを確認します。

表B.32 Subject Name 制約設定パラメーター

パラメーター 説明
Pattern サブジェクト DN を構築する正規表現または他の文字列を指定します。

Subject Name 名と正規表現

Subject Name Constraint の正規表現は、正規表現を照合するための Java 機能によって照合されます。これらの正規表現の形式は、https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html に記載されています。これにより、アスタリスク (*) などのワイルドカードは、任意の数の文字とピリオド (.) が、任意のタイプの文字を検索します。

たとえば、サブジェクト名制約のパターンが 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 制約

この制約は、公開鍵が一意であることを確認します。

表B.33 Unique Key の制約パラメーター

パラメーター 説明
allowSameKeyRenewal
公開鍵は一意でなく、かつ サブジェクト DN が既存の証明書と一致し、このパラメーターが true に設定されている場合、リクエストは更新と見なされ、受け入れられます。ただし、公開鍵が重複していて、既存の Subject DN と一致しない場合、要求は拒否されます。
このパラメーターが false に設定されていると、重複した公開鍵リクエストは拒否されます。

B.2.13. Unique Subject Name 制約

Unique Subject Name 制約は、サーバーが同じサブジェクト名で複数の証明書を発行することを制限します。証明書要求が送信されると、サーバーは自動的にニックネームを他の発行された証明書のニックネームと照合します。この制約は、エンドエンティティーのページからの証明書の登録と更新に適用できます。
1 つの証明書の有効期限が切れているか取り消されていない限り (保留されていない場合)、証明書に同じサブジェクト名を付けることはできません。したがって、アクティブな証明書はサブジェクト名を共有できません。ただし、例外が 1 つあります。証明書のキー使用ビットが異なる場合は、使用法が異なるため、同じサブジェクト名を共有できます。

表B.34 Unique Subject Name 制約設定パラメーター

パラメーター 説明
enableKeyUsageExtensionChecking キーの使用設定が異なる限り、証明書が同じサブジェクト名を持つことを許可するオプションの設定。これは true または false です。デフォルトは true で、重複したサブジェクト名を許可します。

B.2.14. Validity 制約

Validity 制約は、証明書要求の有効期間が基準を満たしているかどうかを確認します。
提供されるパラメーターは、適切な値でなければなりません。たとえば、すでに経過した時間を提供する notBefore パラメーターは受け入れず、notBefore 時間よりも早い時間を提供する notAfter パラメーターは受け入れません。

表B.35 Validity 制約の設定パラメーター

パラメーター 説明
range 有効期間の範囲。日数を設定する整数です。notBefore 時間と notAfter 時間の差 (日数) は範囲値よりも短くする必要があります。そうでない場合、この制約は拒否されます。
notBeforeCheck 範囲が猶予期間内ではないことを確認します。ブール値パラメーター NotBeforeCheck が true に設定されている場合、システムは、notBefore時間が、現在の時間に notBeforeGracePeriod 値を加えた値より大きくないことを確認します。notBeforeTime が、現在の時間と notBeforeGracePeriod 値の間になければ、この制約は拒否されます。
notBeforeGracePeriod notBefore 時間後の猶予期間 (秒単位)。notBeforeTime が、現在の時間と notBeforeGracePeriod 値の間になければ、この制約は拒否されます。この制約は、notBeforeCheck パラメーターが true に設定されている場合にのみ確認されます。
notAfterCheck 指定された時間が期限切れの期間後にないかどうかを確認します。ブール値パラメーターが notAfterCheck を true に設定されている場合、システムは notAfter 時間は現在の時間より大きくありません。現在の時間がこの notAfter 時間を超えると、この制約は拒否されます。