付録B 証明書および CRL のデフォルト、制約、および拡張
この付録では、X.509 v3 で定義された標準の証明書拡張と、X.509 v3 が完成する前にリリースされた製品のバージョンで使用された Netscape で定義された拡張機能の両方を説明します。PKIX Part 1 の推奨事項など、特定の種類の証明書で使用する拡張機能の推奨事項を提供します。
この付録は、Red Hat Certificate System で使用または設定可能なデフォルト、制約、証明書および CRL 拡張機能のリファレンスです。証明書および CRL 拡張の詳細な参照および説明は、RFC 3280 を参照してください。
この付録には以下のセクションが含まれます。
B.1. デフォルトの参照
デフォルトでは、証明書の内容の定義に使用されます。このセクションでは、事前定義されたデフォルト値をリスト表示し、定義します。
B.1.1. Authority Info Access 拡張のデフォルト
デフォルトでは、Authority Info Access 拡張をアタッチします。この拡張機能は、証明書を検証するアプリケーションが、証明書を発行した CA に関するオンライン検証サービスや CA ポリシーデータなどの情報にアクセスする方法を指定します。この拡張機能は、CA によって維持されている CRL の場所を直接指すために使用しないでください。CRL Distribution Points 拡張 「CRL Distribution Points 拡張機能のデフォルト」 は、CRL の場所への参照を提供します。
この拡張機能に関する一般的な情報は、「authorityInfoAccess」 を参照してください。
次の制約は、このデフォルトで定義できます。
- Extension Constraint については、「Extension 制約」 を参照してください。
- No Constraints については、「No Constraint」 を参照してください。
このデフォルトは、各場所のパラメーターを指定して最大 5 つの場所を定義できます。パラメーターには、パラメーターが関連付けられる場所を表示するために、表で n のマークが付いています。
パラメーター | 説明 |
---|---|
Critical |
この拡張機能に critical マークを付けるには |
Method_n | 拡張機能が表示されている証明書を発行した CA に関する追加情報を取得するアクセス方法を指定します。以下の値のいずれかになります。
|
LocationType_n | 証明書を発行した CA に関する追加情報を含む場所の一般名タイプを指定します。これは以下のいずれかのタイプになります。
|
Location_n | 証明書を発行した CA に関する追加情報を取得するためのアドレスまたは場所を指定します。
|
Enable_n |
この場所を有効にするかどうかを指定します。 |
B.1.2. Authority Key Identifier 拡張機能のデフォルト
デフォルトでは、認証局キー識別子の拡張子が証明書に接続されます。拡張機能は、CA が証明書に署名するために使用する秘密鍵に対応する公開鍵を識別します。このデフォルトにはパラメーターがありません。この拡張を使用すると、公開鍵情報とともに証明書に含まれます。
このデフォルトには、次の制約があります。
- No Constraints については、「No Constraint」 を参照してください。
この拡張機能に関する一般的な情報は、「authorityKeyIdentifier」 を参照してください。
B.1.3. Authentication Token Subject Name のデフォルト
このプロファイルのデフォルトでは、認証トークン (AuthToken) オブジェクトの属性値に基づいてサブジェクト名が入力されます。
このデフォルトのプラグインは、ディレクトリーベースの認証マネージャーと動作します。Directory-Based User Dual-Use Certificate Enrollment 証明書登録証明書プロファイルには、UID とパスワードの 2 つの入力パラメーターがあります。ディレクトリーベースの認証マネージャーは、所定の UID とパスワードが正しいかどうかを確認します。
さらに、ディレクトリーベースの認証マネージャーは、発行する証明書のサブジェクト名を作成します。これは、AuthToken からのユーザーの DN 値を使用してサブジェクト名を形成します。
このデフォルトは、AuthToken からサブジェクト名を読み取り、それを証明書要求に配置して、最終的な証明書にサブジェクト名が含まれるようにするロールを果たします。
次の制約は、このデフォルトで定義できます。
- No Constraints については、「No Constraint」 を参照してください。
B.1.4. Basic Constraints 拡張機能のデフォルト
デフォルトでは、基本制約の拡張を証明書にアタッチします。拡張機能は、証明書マネージャーが CA であるかどうかを特定します。この拡張機能は、証明書チェーンの検証プロセス中に、CA 証明書を識別し、証明書チェーンパスの長さの制約を適用するためにも使用されます。
この拡張機能に関する一般的な情報は、「basicConstraints」 を参照してください。
次の制約は、このデフォルトで定義できます。
- Basic Constraints Extension Constraint については、「Basic Constraints 拡張機能の制約」 を参照してください。
- Extension Constraint については、「Extension 制約」 を参照してください。
- No Constraints については、「No Constraint」 を参照してください。
パラメーター | 説明 |
---|---|
Critical |
この拡張機能に critical マークを付けるには |
IsCA |
証明書サブジェクトが CA であるかどうかを指定します。 |
PathLen | パスの長さ、つまり発行されている従属 CA 証明書の下 (従属) にチェーンできる CA 証明書の最大数を指定します。パスの長さは、証明書の検証時に使用する CA 証明書の数に影響します。このチェーンは、チェーンを検証して上に移動させるエンドエンティティー証明書で始まります。
拡張がエンドエンティティー証明書に設定されている場合、
許容値は フィールドが空白の場合、パスの長さのデフォルトは、発行者の証明書の Basic Constraint 拡張機能で設定されたパスの長さにより決定される値になります。発行者のパスの長さが無制限の場合は、下位 CA 証明書のパスの長さも無制限になります。発行者のパス長がゼロより大きい整数の場合、下位 CA 証明書のパス長は、発行者のパス長より 1 小さい値に設定されます。たとえば、発行者のパス長が 4 の場合、下位 CA 証明書のパス長は 3 に設定されます。 |
B.1.5. CA 有効性のデフォルト
このデフォルトでは、CA 証明書の登録または更新プロファイルにオプションが追加され、CA の署名証明書の有効期限の制約がバイパスされます。これは、発行された CA 証明書の有効期限が、発行された C A 署名証明書の有効期限よりも遅い可能性があることを意味します。
次の制約は、このデフォルトで定義できます。
- Validity Constraint については、「Validity 制約」 を参照してください。
- No Constraints については、「No Constraint」 を参照してください。
パラメーター | 説明 |
---|---|
bypassCAnotafterrange | 要求元 CA が発行元 CA の有効期間を超える有効期間を持つ証明書を要求できるかどうかのデフォルト値を設定します。 |
range | この証明書の絶対有効期間を日数で指定します。 |
startTime | 現在の時間に基づいて有効期間が始まるタイミングを設定します。 |
B.1.6. Certificate Policies 拡張機能のデフォルト
デフォルトでは、Certificate Policy Mappings の拡張を証明書テンプレートに割り当てます。この拡張機能は、証明書が発行されたポリシーと証明書を使用できる目的を示す 1 つ以上のポリシーを定義します。デフォルトでは、最大 5 つのポリシーが定義されますが、値を変更できます。
この拡張機能に関する一般的な情報は、「certificatePoliciesExt」 を参照してください。
パラメーター | 説明 |
---|---|
Critical |
この拡張機能に critical マークを付けるには |
numCertPolicies |
定義できるポリシーの数を指定します。デフォルトは |
enable |
|
policyId | ポリシーの OID 識別子を指定します。 |
cpsURI.enable |
拡張機能には、発行者の Certificate Practice Statement への URI を含めることができます。 |
CPSURI.value | この値は、CA によって公開される Certification Practice Statement (CPS) へのポインターです。ポインターは URI の形式になります。 |
usernotice.enable |
拡張機能には、発行者の Certificate Practice Statement への URI を含めることも、ユーザー通知などの発行者情報をテキスト形式で埋め込むこともできます。ユーザー通知を有効にするには |
usernotice.noticeReference.noticeNumbers | この任意のユーザー通知パラメーターは、他の場所に保存されているメッセージを指す一連の番号です。 |
usernotice.noticeReference.organization | このオプションのユーザー通知パラメーターは会社名を指定します。 |
usernotice.explicitText.value | この任意のユーザー通知パラメーターには、証明書内のメッセージが含まれます。 |
B.1.7. CRL Distribution Points 拡張機能のデフォルト
デフォルトでは、CRL Distribution Points の拡張を証明書に割り当てます。この拡張機能は、証明書を検証しているアプリケーションが CRL 情報を取得して、証明書の失効ステータスを検証できる場所を識別します。
この拡張機能に関する一般的な情報は、「CRLDistributionPoints」 を参照してください。
次の制約は、このデフォルトで定義できます。
- Extension Constraint については、「Extension 制約」 を参照してください。
- No Constraints については、「No Constraint」 を参照してください。
このデフォルトは、各場所のパラメーターを指定して最大 5 つの場所を定義できます。パラメーターには、パラメーターが関連付けられる場所を表示するために、表で n のマークが付いています。
パラメーター | 説明 |
---|---|
Critical |
この拡張機能に critical マークを付けるには |
Type_n |
CRL ディストリビューションポイントのタイプを指定します。許容値は |
Name_n | CRL 配布ポイントの名前を指定します。名前は次のいずれかの形式にすることができます。
|
Reasons_n | 配布ポイントで保持される CRL で想定される失効理由を指定します。次の定数のコンマ区切りリストを提供します。
|
IssuerType_n | ディストリビューション中に保持される CRL を署名した発行者の命名タイプを指定します。発行者名は以下のいずれかの形式になります。
|
IssuerName_n | CRL に署名した CRL 発行者の名前を指定します。許容値は次のとおりです。
このパラメーターの値は、 |
B.1.8. Extended Key Usage 拡張機能のデフォルト
デフォルトでは、Extended Key Usage の拡張を証明書に登録します。
この拡張機能に関する一般的な情報は、「extKeyUsage」 を参照してください。
この拡張機能は、Key Usage 拡張機能に示されている基本的な目的に加えて、認証された公開鍵を使用できる目的を識別します。たとえば、Extended Key Usage 拡張が署名キーを識別する場合、Extended Key Usage の拡張では、OCSP 応答の署名のみ、または Java™ アプレットのみにキーの使用を絞り込むことができます。
使用方法 | OID |
---|---|
サーバー認証 | 1.3.6.1.5.5.7.3.1 |
クライアント認証 | 1.3.6.1.5.5.7.3.2 |
コード署名 | 1.3.6.1.5.5.7.3.3 |
| 1.3.6.1.5.5.7.3.4 |
IPsec エンドシステム | 1.3.6.1.5.5.7.3.5 |
IPsec トンネル | 1.3.6.1.5.5.7.3.6 |
IPsec ユーザー | 1.3.6.1.5.5.7.3.7 |
タイムスタンプ | 1.3.6.1.5.5.7.3.8 |
Windows 2000 は、暗号化されたファイルシステム (EFS) と呼ばれる機能を使用して、ハードディスク上のファイルを暗号化できます。以下の 2 つの OID を持つ Extended Key Usage が含まれる証明書を使用します。
1.3.6.1.4.1.311.10.3.4 (EFS 証明書)
1.3.6.1.4.1.311.10.3.4.1 (EFS リカバリー証明書)
EFS リカバリー回復証明書は、ユーザーが秘密鍵を紛失し、その鍵で暗号化されたデータを使用する必要がある場合に、復元エージェントによって使用されます。Certificate System は、これら 2 つの OID をサポートし、これらの OID を含む Extended Key Usage 拡張機能を含む証明書を発行できるようにします。
通常のユーザー証明書は、リカバリー OID ではなく、EFS OID のみで作成する必要があります。
次の制約は、このデフォルトで定義できます。
- Extended Key Usage Constraint については、「Extended Key Usage 拡張機能の制約」 を参照してください。
- Extension Constraint については、「Extension 制約」 を参照してください。
- No Constraints については、「No Constraint」 を参照してください。
パラメーター | 説明 |
---|---|
Critical |
この拡張機能に critical マークを付けるには |
OID | キー使用目的を識別する OID を指定します。許容値は、ドットで区切られた数値コンポーネント表記で指定された一意の有効な OID です。たとえば、2.16.840.1.113730.1.99 です。キーの使用目的に応じて、OID は PKIX (表B.6「Extended Key Usage 拡張機能の PKIX 使用定義」 にリストされている) またはカスタム OID で指定できます。カスタム OID は、会社で使用するために予約された ID の登録済みサブツリーである必要があります。Certificate System の評価とテストにカスタム OID を使用することは可能ですが、実稼働環境では、OID の定義と ID のサブツリーの登録に関する ISO 規則に準拠しています。 |
B.1.9. Freshest CRL 拡張機能のデフォルト
デフォルトでは、Freshest CRL 拡張を証明書に割り当てます。
次の制約は、このデフォルトで定義できます。
- Extension Constraint については、「Extension 制約」 を参照してください。
- No Constraints については、「No Constraint」 を参照してください。
このデフォルトは、各場所のパラメーターを指定して最大 5 つの場所を定義できます。パラメーターには、パラメーターが関連付けられる場所を表示するために、表で n のマークが付いています。
パラメーター | 説明 |
---|---|
Critical |
この拡張機能に critical マークを付けるには |
PointEnable_n |
このポイントを有効にするには |
PointType_n |
|
PointName_n |
|
PointIssuerName_n | CRL に署名した発行者の名前を指定します。名前は以下のいずれかの形式になります。
name の値は、 |
PointType_n | CRL に署名した CRL 発行者の一般的な名前タイプを指定します。許容値は次のとおりです。
このパラメーターの値は、 |
B.1.10. 一般的な拡張機能のデフォルト
この拡張により、ユーザーが決定したデータで汎用拡張を作成できます。デフォルトでは、汎用拡張が正しく設定されます。
パラメーター | 説明 |
---|---|
Critical |
この拡張機能に critical マークを付けるには |
genericExtOID | 拡張 OID 識別子を指定します。 |
genericExtData | 拡張に含まれるバイナリーデータ。 |
B.1.11. Inhibit Any-Policy 拡張機能のデフォルト
CA に発行される証明書には、inhibit any-policy 拡張を使用できます。禁止ポリシー拡張は、値が { 2 5 29 32 0 } の特別な anyPolicy OID が、他の証明書ポリシーに対する明示的な一致とは見なされていないことを示します。
パラメーター | 説明 |
---|---|
Critical |
このポリシーは Critical とマークする必要があります。この拡張機能に critical マークを付けるには |
SkipCerts |
このパラメーターで any-policy ポリシーが許可されなくなる前に、パスに表示される追加証明書の数を示します。 |
B.1.12. Issuer Alternative Name 拡張機能のデフォルト
このデフォルトは、Issuer Alternative Name 拡張を証明書に割り当てます。Issuer Alternative Name 拡張は、インターネットスタイルのアイデンティティーを証明書発行者に関連付けるために使用されます。
次の制約は、このデフォルトで定義できます。
- Extension Constraint については、「Extension 制約」 を参照してください。
- No Constraints については、「No Constraint」 を参照してください。
このデフォルトは、各場所のパラメーターを指定して最大 5 つの場所を定義できます。パラメーターには、パラメーターが関連付けられる場所を表示するために、表で n のマークが付いています。
パラメーター | 説明 |
---|---|
Critical |
この拡張機能に critical マークを付けるには |
issuerAltExtType | これにより、使用する名前拡張のタイプが設定されます。これは以下のいずれかになります。
|
issuerAltExtPattern | 拡張に追加する要求属性値を指定します。属性の値は、サポートされる一般名のタイプに準拠する必要があります。許容値は、証明書要求に含まれる要求属性です。 サーバーがリクエストの属性を見つけると、拡張に属性値を設定し、その拡張を証明書に追加します。複数の属性が指定され、リクエストに属性が存在しない場合、サーバーは Issuer Alternative Name 拡張を証明書に追加しません。リクエストから適切な属性を使用して issuerAlternativeName を形成することができない場合は、トークン式なしでリテラル文字列を使用できます。たとえば、認証局 です。 |
B.1.13. Key Usage 拡張機能のデフォルト
デフォルトでは、Key Usage 拡張機能が証明書に接続されます。拡張機能は、データ署名、キー暗号化、データ暗号化など、証明書に含まれるキーを使用する目的を指定します。これにより、キーペアの使用が所定の目的に制限されます。
この拡張機能に関する一般的な情報は、「keyUsage」 を参照してください。
次の制約は、このデフォルトで定義できます。
- Key Usage Constraint については、「Key Usage 拡張機能の制約」 を参照してください。
- Extension Constraint については、「Extension 制約」 を参照してください。
- No Constraints については、「No Constraint」 を参照してください。
パラメーター | 説明 |
---|---|
Critical |
この拡張機能に critical マークを付けるには |
digitalSignature |
SSL クライアント証明書と S/MIME 署名証明書を許可するかどうかを指定します。 |
nonRepudiation |
S/MIME 署名証明書に使用するかどうかを指定します。 警告 このビットの使用は議論の的になっています。証明書に設定する前に、その使用による法的影響を慎重に検討してください。 |
keyEncipherment |
サブジェクトの公開鍵を使用して秘密鍵と秘密鍵のどちらを暗号化するかを指定します。これは、SSL サーバー証明書および S/MIME 暗号化証明書に設定されます。 |
dataEncipherment |
サブジェクトの公開鍵を使用して、キー資料とは対照的に、拡張を設定するかどうかを指定します。 |
keyAgreement |
サブジェクトの公開鍵がキー合意に使用されるたびに拡張を設定するかどうかを指定します。 |
keyCertsign |
公開鍵を使用して他の証明書の署名を検証するかどうかを指定します。この設定は CA 証明書に使用されます。 |
cRLSign |
CRL に署名する CA 署名証明書の拡張を設定するかどうかを指定します。 |
encipherOnly |
公開鍵が鍵共有の実行中にデータを暗号化するためだけのものである場合に、拡張子を設定するかどうかを指定します。このビットが設定されている場合は、 |
decipherOnly |
公開鍵が鍵共有の実行中にデータを暗号化するためだけのものである場合に、拡張子を設定するかどうかを指定します。このビットが設定されている場合は、 |
B.1.14. Name Constraints 拡張機能のデフォルト
このデフォルトでは、Name Constraints 拡張を証明書に割り当てます。この拡張機能は CA 証明書で使用され、証明書チェーン内の後続の証明書のサブジェクト名またはサブジェクト代替名を配置するネームスペースを示します。
この拡張機能に関する一般的な情報は、「nameConstraints」 を参照してください。
次の制約は、このデフォルトで定義できます。
- Extension Constraint については、「Extension 制約」 を参照してください。
- No Constraints については、「No Constraint」 を参照してください。
このデフォルトでは、許可されたサブツリーと除外されたサブツリーの両方に最大 5 つの場所が定義され、場所ごとにパラメーターが設定されます。パラメーターには、パラメーターが関連付けられる場所を表示するために、表で n のマークが付いています。
パラメーター | 説明 |
---|---|
Critical |
この拡張機能に critical マークを付けるには |
PermittedSubtreesn.min | 許可されるサブツリーの最小数を指定します。
|
PermittedSubtreesmax_n | 許可されるサブツリーの最大数を指定します。
|
PermittedSubtreeNameChoice_n | 拡張に含める許可されるサブツリーの一般な名前タイプを指定します。許容値は次のとおりです。
|
PermittedSubtreeNameValue_n | 拡張に含める許可されるサブツリーの汎用名を指定します。
|
PermittedSubtreeEnable_n |
この許可されたサブツリーエントリーを有効にするには、 |
ExcludedSubtreesn.min | 除外されたサブツリーの最小数を指定します。
|
ExcludedSubtreeMax_n | 除外されたサブツリーの最大数を指定します。
|
ExcludedSubtreeNameChoice_n | 拡張に追加する除外されたサブツリーの一般名を指定します。許容値は次のとおりです。
|
ExcludedSubtreeNameValue_n | 拡張に含める許可されるサブツリーの汎用名を指定します。
|
ExcludedSubtreeEnable_n |
この除外されたサブツリーエントリーを有効にするには、 |
B.1.15. Netscape Certificate Type 拡張機能のデフォルト
この拡張機能は廃止されています。代わりに、Key Usage または Extended Key Usage による証明書拡張を使用してください。
デフォルトでは、Netscape Certificate Type 拡張を証明書に割り当てます。拡張機能は、CA 証明書、サーバー SS L 証明書、クライアント SSL 証明書、S/MIME 証明書などの証明書タイプを識別します。これにより、証明書の使用が事前に決定された目的に制限されます。
B.1.16. Netscape Comment 拡張機能のデフォルト
この拡張機能は廃止されています。
デフォルトでは、Netscape Comment 拡張機能が証明書にアタッチされます。拡張機能を使用して、証明書にテキスト形式のコメントを含めることができます。コメントを解釈できるアプリケーションは、証明書が使用または表示されるときにコメントを表示します。
この拡張機能に関する一般的な情報は、「netscape-comment」 を参照してください。
次の制約は、このデフォルトで定義できます。
- Extension Constraint については、「Extension 制約」 を参照してください。
- No Constraints については、「No Constraint」 を参照してください。
パラメーター | 説明 |
---|---|
Critical |
この拡張機能に critical マークを付けるには |
CommentContent | 証明書に表示するコメントの内容を指定します。 |
B.1.17. デフォルト拡張機能なし
デフォルトを使用しない場合は、このデフォルトを使用して制約を設定できます。このデフォルトには設定がなく、デフォルトも設定されていませんが、使用可能なすべての制約を設定できます。
B.1.18. OCSP No Check 機能拡張のデフォルト
デフォルトでは、OCSP No Check 拡張機能が証明書に割り当てられます。拡張機能は、OCSP レスポンダー証明書でのみ使用する必要があり、OCSP 準拠のアプリケーションが、承認された OCSP レスポンダーが OCSP 応答に署名するために使用する証明書の失効ステータスを確認する方法を示します。
この拡張機能に関する一般的な情報は、「OCSPNocheck」 を参照してください。
次の制約は、このデフォルトで定義できます。
- Extension Constraint については、「Extension 制約」 を参照してください。
- No Constraints については、「No Constraint」 を参照してください。
パラメーター | 説明 |
---|---|
Critical |
この拡張機能に critical マークを付けるには |
B.1.19. Policy Constraints 拡張機能のデフォルト
このデフォルトでは、Policy Constraints 拡張を証明書に割り当てます。拡張機能は CA 証明書でのみ使用でき、パス検証を 2 つの方法で制限します。ポリシーマッピングを禁止するか、パス内の各証明書に受け入れ可能なポリシー識別子が含まれていることを要求します。デフォルトでは、Req ExplicitPolicy
と InhibitPolicy Mapping
の両方を指定できます。PKIX 標準では、証明書に存在する場合、拡張子が null シーケンスでは構成しないことが要求されています。少なくとも 2 つの指定されたフィールドが存在する必要があります。
この拡張機能に関する一般的な情報は、「policyConstraints」 を参照してください。
次の制約は、このデフォルトで定義できます。
- Extension Constraint については、「Extension 制約」 を参照してください。
- No Constraints については、「No Constraint」 を参照してください。
パラメーター | 説明 |
---|---|
Critical |
この拡張機能に critical マークを付けるには |
reqExplicitPolicy | 明示的なポリシーが必要になる前に、パスで許可される証明書の総数を指定します。これは、受け入れ可能なポリシーが必要になる前に、下位 CA 証明書の下にチェーンできる CA 証明書の数です。
この数は、証明書の検証中に使用される CA 証明書の数に影響します。このチェーンは、チェーンを検証して移動させるエンドエンティティー証明書で始まります。このパラメーターは、拡張がエンドエンティティーの証明書に設定されている場合は有効ではありません。 |
inhibitPolicyMapping | ポリシーマッピングが許可されなくなる前に、パスで許可される証明書の総数を指定します。
|
B.1.20. Policy Mappers 拡張機能のデフォルト
このデフォルトでは、Policy Mappings の拡張を証明書にアタッチします。拡張機能は OID のペアをリスト表示し、それぞれのペアが 2 つの CA のポリシーステートメントを識別します。ペアリングは、ある CA の対応するポリシーが別の CA のポリシーと同等であることを示します。この拡張は、クロス証明書のコンテキストで役に立ちます。サポートされる場合、拡張は CA 証明書のみに含まれます。デフォルトでは、ポリシーステートメントに割り当てられた OID をペアにすることにより、ある CA のポリシーステートメントを別の CA のポリシーステートメントにマップします。
各ペアは、issuerDomainPolicy
と subjectDomainPolicy
の 2 つのパラメーターで定義されます。このペアリングは、発行 CA が issuerDomainPolicy
をサブジェクト CA の subjectDomainPolicy
と同等であると見なしていることを示します。発行 CA のユーザーは、特定のアプリケーションに対して issuerDomainPolicy
を受け入れることができます。ポリシーマッピングは、サブジェクト CA に関連付けられているどのポリシーが受け入れたポリシーと同等であるかをこれらのユーザーに通知します。
この拡張機能に関する一般的な情報は、「policyMappings」 を参照してください。
次の制約は、このデフォルトで定義できます。
- Extension Constraint については、「Extension 制約」 を参照してください。
- No Constraints については、「No Constraint」 を参照してください。
パラメーター | 説明 |
---|---|
Critical |
この拡張機能に critical マークを付けるには |
IssuerDomainPolicy_n | 別の CA のポリシーステートメントとマッピングするために、発行元 CA のポリシーステートメントに割り当てられた OID を指定します。たとえば、1.2.3.4.5 です。 |
SubjectDomainPolicy_n | 発行 CA のポリシーステートメントに対応するサブジェクト CA のポリシーステートメントに割り当てられた OID を指定します。たとえば、6.7.8.9.10 です。 |
B.1.21. Private Key Usage Period 拡張機能のデフォルト
Private Key Usage Period の拡張機能により、証明書発行者は、証明書自体に秘密鍵に異なる有効期間を指定できます。この拡張は、デジタル署名鍵の使用を目的としています。
パラメーター | 説明 |
---|---|
Critical | この拡張は、常にクリティカルではないはずです。 |
puStartTime |
このパラメーターは、開始時間を設定します。デフォルト値は |
puDurationDays |
このパラメーターは、使用状況の期間を設定します。デフォルト値は |
B.1.22. 署名アルゴリズムのデフォルト
デフォルトでは、証明書要求に署名アルゴリズムがアタッチされます。このデフォルトは、証明書の署名に使用できる可能なアルゴリズムをエージェントに提示します。
次の制約は、このデフォルトで定義できます。
- Signing Algorithm Constraint については、「Signing Algorithm 制約」 を参照してください。
- No Constraints については、「No Constraint」 を参照してください。
パラメーター | 説明 |
---|---|
signingAlg |
この証明書の作成に使用するデフォルトの署名アルゴリズムを指定します。 |
signingAlgsAllowed | この証明書の署名に使用できる署名アルゴリズムを指定します。アルゴリズムは以下のいずれか 1 つになります。
|
B.1.23. Subject Alternative Name 拡張機能のデフォルト
このデフォルトは、Subject Alternative Name 拡張を証明書に割り当てます。拡張機能は、電子メールアドレス、DNS 名、IP アドレス (IPv4 と IPv6 の両方)、または URI などの追加の ID を証明書のサブジェクトにバインドします。標準では、証明書のサブジェクトフィールドに空のシーケンスが含まれている場合、Subject Alternative Name 拡張にサブジェクトの代替名が含まれている必要があり、拡張にクリティカルのマークが付けられている必要があります。
ディレクトリーベースの認証方法の場合、Certificate System は任意の文字列およびバイト属性の値を取得し、それらを証明書要求に設定できます。これらの属性は、自動登録モジュールで定義された ldapStringAttributes
および ldapByteAttributes
フィールドに入力することで設定されます。
認証された属性 (LDAP データベースに格納されている属性を意味する) をこの拡張機能の一部にする必要がある場合は、$request.X$
トークンの値を使用します。
サブジェクトの代替名にユニバーサル一意識別子 (UUID) を挿入するための追加の属性があります。このオプションは、バージョン 4 UUID の乱数を生成します。パターンは、追加 subjAltExtSource
パラメーターで番号を生成するサーバーを参照することによって定義されます。
この例では、基本的な Subject Alternative Name 拡張のデフォルトが設定されています。
例B.1 Subject Alternative Name 拡張機能のデフォルト設定
policyset.serverCertSet.9.constraint.name=No Constraint policyset.serverCertSet.9.default.class_id=subjectAltNameExtDefaultImpl policyset.serverCertSet.9.default.name=Subject Alternative Name extension default policyset.serverCertSet.9.default.params.subjAltExtGNEnable_0=true policyset.serverCertSet.9.default.params.subjAltExtPattern_0=$request.requestor_email$ policyset.serverCertSet.9.default.params.subjAltExtType_0=RFC822Name policyset.serverCertSet.9.default.params.subjAltExtGNEnable_1=true policyset.serverCertSet.9.default.params.subjAltExtPattern_1=$request.SAN1$ policyset.serverCertSet.9.default.params.subjAltExtType_1=DNSName policyset.serverCertSet.9.default.params.subjAltExtGNEnable_2=true policyset.serverCertSet.9.default.params.subjAltExtPattern_2=http://www.server.example.com policyset.serverCertSet.9.default.params.subjAltExtType_2=URIName policyset.serverCertSet.9.default.params.subjAltExtType_3=OtherName policyset.serverCertSet.9.default.params.subjAltExtPattern_3=(IA5String)1.2.3.4,$server.source$ policyset.serverCertSet.9.default.params.subjAltExtSource_3=UUID4 policyset.serverCertSet.9.default.params.subjAltExtGNEnable_3=true policyset.serverCertSet.9.default.params.subjAltExtType_4=RFC822Name policyset.serverCertSet.9.default.params.subjAltExtGNEnable_4=false policyset.serverCertSet.9.default.params.subjAltExtPattern_4= policyset.serverCertSet.9.default.params.subjAltNameExtCritical=false policyset.serverCertSet.9.default.params.subjAltNameNumGNs=5
Subject Alternative Name 拡張機能のデフォルトは、プロファイル属性の証明書要求をチェックします。リクエストに属性が含まれる場合、プロファイルはその値を読み込み、拡張機能に設定します。LDAP ベースの認証が設定されている場合は、Subject Alternative Name 拡張機能のデフォルトで LDAP ディレクトリーから属性値を挿入することもできます。証明書に追加された拡張機能には、設定されたすべての属性が含まれています。
Subject Alternative Name 拡張のデフォルトで使用できる変数を以下の表に示します。
ポリシーセットトークン | 説明 |
---|---|
$request.auth_token.cn$ |
証明書を要求したユーザーの LDAP 共通名 ( |
$request.auth_token.mail$ |
証明書を更新したユーザーの LDAP メール ( |
$request.auth_token.tokenCertSubject$ | 証明書サブジェクト名。 |
$request.auth_token.uid$ |
証明書を要求したユーザーの LDAP ユーザー ID ( |
$request.auth_token.user$ | |
$request.auth_token.userDN$ | 証明書を要求したユーザーのユーザー DN。 |
$request.auth_token.userid$ | 証明書を要求したユーザーのユーザー ID 属性の値。 |
$request.uid$ | 証明書を要求したユーザーのユーザー ID 属性の値。 |
$request.profileRemoteAddr$ | 要求するユーザーの IP アドレス。これは、クライアントに応じて IPv4 アドレスまたは IPv6 アドレスになります。IPv4 アドレスは、n.n.n.n または n.n.n.n,m.m.m.m の形式にする必要があります。たとえば、128.21.39.40 または 128.21.39.40,255.255.255.00 です。IPv6 アドレスは 128 ビット名前空間を使用します。IPv6 アドレスはコロンで区切られ、ネットマスクはピリオドで区切られます。たとえば、0:0:0:0:0:0:13.1.68.3、FF01::43、0:0:0:0:0:0:13.1.68.3,FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:255.255.255.0、および FF01::43,FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FF00:0000 になります。 |
$request.profileRemoteHost$ |
ユーザーのマシンのホスト名または IP アドレス。ホスト名は、 |
$request.requestor_email$ | 要求を送信したユーザーのメールアドレス。 |
$request.requestowner$ | 要求を送信した人。 |
$request.subject$ | 証明書が発行されるエンティティーのサブジェクト名 DN。たとえば、uid=jsmith, e=jsmith@example.com です。 |
$request.tokencuid$ | 登録の要求に使用されるスマートカードトークンのカード一意の ID (CUID)。 |
$request.upn$ | Microsoft UPN。これには (UTF8String)1.3.6.1.4.1.311.20.2.3,$request.upn$ の形式があります。 |
$server.source$ | サーバーに対し、サブジェクト名のバージョン 4 の UUID (乱数) コンポーネントを生成するように指示します。この値は常に (IA5String)1.2.3.4,$server.source$ 形式になります。 |
1 つのエクステンションに複数の属性を設定できます。subjAltNameNumGNs
パラメーターは、リスト表示された属性のうち、証明書に追加する必要がある属性の数を制御します。このパラメーターはカスタムプロファイルに追加する必要があり、必要な数の属性を含めるためにデフォルトプロファイルで変更する必要がある場合があります。以下の表では、subjAltNameNumGNs
が 5
に設定されて、RFC822Name
、DNSName
、URIName
、OtherName
、RFC822Name
の名前 (汎用名 _0、_1、_2、_3、_4) が挿入されます。
次の制約は、このデフォルトで定義できます。
- Extension Constraint については、「Extension 制約」 を参照してください。
- No Constraints については、「No Constraint」 を参照してください。
パラメーター | 説明 |
---|---|
Critical |
この拡張機能に critical マークを付けるには |
Pattern | 拡張に追加する要求属性値を指定します。属性の値は、サポートされる一般名のタイプに準拠する必要があります。サーバーがリクエストの属性を見つけると、拡張に属性値を設定し、その拡張を証明書に追加します。複数の属性が指定され、リクエストに属性が存在しない場合、サーバーは Subject Alternative Name 拡張を証明書に追加しません。許容値は、証明書要求に含まれる要求属性です。たとえば、$request.requestor_email$ です。 |
タイプ | request 属性の一般的な名前タイプを指定します。
|
ソース | ID を生成するために使用する識別ソースまたはプロトコルを指定します。サポートされるソースは UUID4 で、UUID を作成する乱数を生成します。 |
コンポーネント数 (NumGN) | サブジェクトの別名に含める必要がある名前コンポーネントの数を指定します。 |
B.1.24. Subject Directory Attributes 拡張のデフォルト
デフォルトでは、Subject Directory 属性の拡張が証明書に割り当てます。Subject Directory Attributes 機能拡張は、証明書の件名に必要なディレクトリー属性の値をすべて伝えます。
次の制約は、このデフォルトで定義できます。
- Extension Constraint については、「Extension 制約」 を参照してください。
- No Constraints については、「No Constraint」 を参照してください。
パラメーター | 説明 |
---|---|
Critical |
この拡張機能に critical マークを付けるには |
Name |
属性名。 |
Pattern | 拡張に追加する要求属性値を指定します。属性値は、属性の許可される値に準拠する必要があります。サーバーが属性を見つけると、拡張に属性値を設定し、その拡張を証明書に追加します。複数の属性が指定され、リクエストに属性が存在しない場合、サーバーは Subject Directory Attributes 拡張を証明書に追加しません。たとえば、$request.requestor_email$ です。 |
Enable |
その属性が証明書に追加できるかどうかを設定します。 |
B.1.25. Subject Info Access 拡張のデフォルト
証明書テンプレートに Subject Information Access 拡張機能を設定する登録デフォルトポリシーを実装します。この拡張機能は、拡張機能が表示されている証明書のサブジェクトの情報とサービスにアクセスする方法を示します。
パラメーター | 説明 |
---|---|
Critical | この拡張はクリティカルではないはずです。 |
subjInfoAccessNumADs | 証明書に含まれる情報アクセスセクションの数。 |
subjInfoAccessADMethod_n | アクセスメソッドの OID。 |
subjInfoAccessADMethod_n | アクセスメソッドのタイプ。
|
subjInfoAccessADLocation_n | タイプ subjInfoAccessADMethod_n を元にした場所 つまり、URI 名の URL。 |
subjInfoAccessADEnable_n |
この拡張を有効にするには |
B.1.26. Subject Key Identifier 拡張機能のデフォルト
デフォルトでは、サブジェクトキー識別子の拡張を証明書に割り当てます。この拡張機能は、特定の公開鍵を含む証明書を識別し、同じサブジェクト名を持つ複数の証明書の中から証明書を識別します。
この拡張機能に関する一般的な情報は、「subjectKeyIdentifier」 を参照してください。
有効にすると、拡張機能がまだ存在しない場合、プロファイルは登録要求に Subject Key Identifier Extensio 拡張機能を追加します。CRMF リクエストなど、リクエストに拡張機能が存在する場合は、デフォルトで拡張機能が置き換えられます。エージェントが手動登録要求を承認した後、プロファイルは、すでに存在する Subject Key Identifier Extension を受け入れます。
このデフォルトにはパラメーターがありません。この拡張を使用すると、公開鍵情報とともに証明書に含まれます。
次の制約は、このデフォルトで定義できます。
- Extension Constraint については、「Extension 制約」 を参照してください。
- No Constraints については、「No Constraint」 を参照してください。
B.1.27. Subject Name のデフォルト
デフォルトでは、サーバー側の設定可能なサブジェクト名を証明書要求に割り当てます。静的サブジェクト名は、証明書のサブジェクト名として使用されます。
次の制約は、このデフォルトで定義できます。
- Subject Name Constraint については、「Subject Name 制約」 を参照してください。
- Unique Subject Name Constraint については、「Unique Subject Name 制約」 を参照してください。
- No Constraints については、「No Constraint」 を参照してください。
パラメーター | 説明 |
---|---|
Name | この証明書のサブジェクト名を指定します。 |
UidPwdDirAuth プラグインから DNPATTERN 値を使用する証明書サブジェクト名を取得する必要がある場合は、Subject Name Default プラグインを使用するようにプロファイルを設定し、以下に示すように、Name
パラメーターを AuthToken の "Subject Name" に置き換えます。
policyset.userCertSet.1.default.class_id=subjectNameDefaultImpl policyset.userCertSet.1.default.name=Subject Name Default policyset.userCertSet.1.default.params.name=$request.auth_token.tokenCertSubject$
B.1.28. User Key のデフォルト
デフォルトでは、ユーザーが指定したキーを証明書要求に割り当てます。これは必須のデフォルトです。キーは登録要求の一部です。
次の制約は、このデフォルトで定義できます。
- Key Constraint については、「Key 制約」 を参照してください。
- No Constraints については、「No Constraint」 を参照してください。
B.1.29. User Signing Algorithm のデフォルト
このデフォルトは、証明書要求にユーザー指定の署名アルゴリズムを設定する登録デフォルトプロファイルを実装します。証明書プロファイルに含まれている場合、これにより、ユーザーは、制約セットに従って、証明書の署名アルゴリズムを選択できます。
署名アルゴリズムの選択肢を登録フォームに追加するための入力は提供されていませんが、この情報を含むリクエストを送信することは可能です。
次の制約は、このデフォルトで定義できます。
- Signing Algorithm Constraint については、「Signing Algorithm 制約」 を参照してください。
- No Constraints については、「No Constraint」 を参照してください。
B.1.30. User Subject Name のデフォルト
デフォルトでは、ユーザーが指定したサブジェクト名を証明書要求に割り当てます。証明書プロファイルに含まれている場合、ユーザーは、設定された制約に従って、証明書のサブジェクト名を指定できます。この拡張機能は、証明書の発行時に元の証明書要求で指定されたサブジェクト名を保持します。
次の制約は、このデフォルトで定義できます。
- Subject Name Constraint については、「Subject Name 制約」 を参照してください。
- Unique Subject Name Constraint については、「Unique Subject Name 制約」 を参照してください。
- No Constraints については、「No Constraint」 を参照してください。
B.1.31. User Validity のデフォルト
このデフォルトでは、ユーザーが指定した有効性が証明書要求に添付されます。証明書プロファイルに含まれている場合、ユーザーは設定された制約に従って有効期間を指定できます。このデフォルトプロファイルは、証明書が発行されたときに、元の証明書要求でそのユーザー定義の有効期間を保持します。
ユーザー指定の有効期限を登録フォームに追加するための入力は提供されていませんが、この情報を含むリクエストを送信することは可能です。
次の制約は、このデフォルトで定義できます。
- Validity Constraint については、「Validity 制約」 を参照してください。
- No Constraints については、「No Constraint」 を参照してください。
B.1.32. User Supplied 拡張のデフォルト
User Supplied 拡張のデフォルトクラスは、証明書要求でユーザーが定義した証明書拡張を証明書に入力します。プロファイルは証明書を登録する前に特定の拡張機能を必要とする可能性があるため、これには、ユーザーが特定の基準を満たす証明書要求を送信するか、特定の情報を提供する必要があります。
この拡張機能のデフォルトの設定には、ユーザーが証明書要求で拡張機能を指定できるため、特に注意してください。このデフォルトを使用する場合、Red Hat は、拡張機能に対応する制約を使用して、User Supplied 拡張のデフォルトの乱用を最小限に抑えることを強く推奨します。
ユーザー定義の拡張機能は、設定されている制約に対して検証されるため、拡張機能の種類を制限したり ( Extension Constraint 制約を介して)、キーやその他の基本的な制約 (CA 証明書かどうかなど) のルールを設定したりできます。
この拡張機能が対応する OID (拡張機能制約) を持つプロファイルに設定されている場合、そのプロファイルを介して処理される証明書要求には、指定された拡張機能を含める 必要があります。そうでない場合、要求は拒否されます。
エラータ RHSA 2008:0500 の 前 に User Supplied 拡張のデフォルトで証明書プロファイルが有効になっていた場合は、証明書要求でユーザー提供の拡張機能をサポートするようにこのプロファイルを編集する必要があります。以下の例のように、userExtensionDefaultImpl
のデフォルトを適用します。指定 OID は、Basic Constraints Extension Constraint に関するものです。
policyset.set1.p6.default.class_id=userExtensionDefaultImpl policyset.set1.p6.default.name=User Supplied extension default policyset.set1.p6.default.params.userExtOID=2.5.29.19
CA は、次の 3 つの方法のいずれかで、User Supplied 拡張のデフォルトを使用して登録を処理します。
- 拡張機能の OID が証明書要求とデフォルトの両方で指定されている場合、拡張機能は制約によって検証され、証明書に適用されます。
- 拡張機能の OID が要求で指定されているが、プロファイルの User Supplied 拡張のデフォルトで指定されていない場合、ユーザー指定の拡張機能は無視され、証明書はその拡張機能なしで正常に登録されます。
- この拡張機能が対応する OID (拡張機能制約) を持つプロファイルに設定されている場合、そのプロファイルを介して処理される証明書要求には、指定された拡張機能を含める 必要があります。そうでない場合、要求は拒否されます。
ユーザー定義の拡張を含む証明書 要求 はプロファイルに送信する必要があります。ただし、証明書登録フォームには、ユーザーが提供する拡張機能を追加するための入力フィールドがありません。拡張機能を提供せずに証明書要求を送信すると失敗します。
次の例では、Extended Key Usage Constraint を持つプロファイルに User Supplied 拡張機能のデフォルトを追加します。userExtOID
パラメーターで指定された OID は、Extended Key Usage Extension 用です。
例B.2 Extended Key Usage 拡張の User Supplied 拡張のデフォルト
policyset.set1.2.constraint.class_id=extendedKeyUsageExtConstraintImpl policyset.set1.2.constraint.name=Extended Key Usage Extension policyset.set1.2.constraint.params.exKeyUsageCritical=false policyset.set1.2.constraint.params.exKeyUsageOIDs=1.3.6.1.5.5.7.3.2,1.3.6.1.5.5.7.3.4 policyset.set1.2.default.class_id=userExtensionDefaultImpl policyset.set1.2.default.name=User Supplied extension default policyset.set1.2.default.params.userExtOID=2.5.29.37
この例では、User Supplied 拡張のデフォルトにより、ユーザーは Extended Key Usage Extension (2.5.29.37) を指定できますが、制約により、ユーザー要求は SSL クライアント認証 (1.3.6.1.5.5.7.3.2) と電子メール保護 (1.3.6.1.5.5.7.3.4) の使用に制限されます。
プロファイルの編集については、「証明書プロファイルの設定」 で説明します。
例B.3 CSR 内の複数の User Supplied 拡張
RHCS 登録プロファイルフレームワークを使用すると、同じプロファイルで複数の User Supplied Extensions 拡張機能を定義できます。たとえば、以下の組み合わせを指定できます。
Extended Key Usage Extension の場合:
policyset.serverCertSet.2.constraint.class_id=extendedKeyUsageExtConstraintImpl policyset.serverCertSet.2.constraint.name=Extended Key Usage Extension policyset.serverCertSet.2.constraint.params.exKeyUsageCritical=false policyset.serverCertSet.2.constraint.params.exKeyUsageOIDs=1.3.6.1.5.5.7.3.2,1.3.6.1.5.5.7.3.4 policyset.serverCertSet.2.default.class_id=userExtensionDefaultImpl policyset.serverCertSet.2.default.name=User Supplied extension default policyset.serverCertSet.2.default.params.userExtOID=2.5.29.37
Key Usage Extension の場合:
次の形式を使用すると、拡張機能のパラメーターを含むポリシーを適用できます。
-
CSR 内に 存在しなければならない 場合:
value = "true"
-
CSR 内に 存在してはならない 場合:
value = "false"
オプション の場合:
value = "-"
以下に例を示します。
policyset.serverCertSet.13.constraint.class_id=keyUsageExtConstraintImpl policyset.serverCertSet.13.constraint.name=Key Usage Extension Constraint policyset.serverCertSet.13.constraint.params.keyUsageCritical=- policyset.serverCertSet.13.constraint.params.keyUsageCrlSign=false policyset.serverCertSet.13.constraint.params.keyUsageDataEncipherment=- policyset.serverCertSet.13.constraint.params.keyUsageDecipherOnly=- policyset.serverCertSet.13.constraint.params.keyUsageDigitalSignature=- policyset.serverCertSet.13.constraint.params.keyUsageEncipherOnly=- policyset.serverCertSet.13.constraint.params.keyUsageKeyAgreement=true policyset.serverCertSet.13.constraint.params.keyUsageKeyCertSign=- policyset.serverCertSet.13.constraint.params.keyUsageKeyEncipherment=- policyset.serverCertSet.13.constraint.params.keyUsageNonRepudiation=- policyset.serverCertSet.13.default.class_id=userExtensionDefaultImpl policyset.serverCertSet.13.default.name=User Supplied Key Usage Extension policyset.serverCertSet.13.default.params.userExtOID=2.5.29.15
-
CSR 内に 存在しなければならない 場合:
ユーザー定義の拡張属性で CSR を作成する方法の例は、「certutil
でユーザー定義拡張を使用する CSR を作成する」 を参照してください。
B.1.32.1. 有効性のデフォルト
デフォルトでは、サーバー側の設定可能な有効期間を証明書要求に割り当てます。
次の制約は、このデフォルトで定義できます。
- Validity Constraint については、「Validity 制約」 を参照してください。
- No Constraints については、「No Constraint」 を参照してください。
パラメーター | 説明 |
---|---|
range | この証明書の有効期限を指定します。 |
startTime | 現在の時間に基づいて有効期間が始まるタイミングを設定します。 |