附录 B. 证书和 CRL 的默认、限制和扩展
本附录解释了 X.509 v3 定义的标准证书扩展,以及在 X.509 v3 之前发布的产品版本中使用的 Netscape 定义的扩展。它提供了扩展用于特定类型证书的建议,包括 PKIX 第 1 部分建议。
重要
本附录是对使用的默认、约束和 CRL 扩展的引用,这些扩展在 Red Hat Certificate Systemnbsp 中被使用或被配置 ;Hat Certificate Red Hat Certificate Systemnbsp;System.有关证书和 CRL 扩展的完整参考和说明,请参阅 RFC 3280。
本附录包含以下部分:
B.1. 默认参考
默认值用于定义证书的内容。本节列出了并定义预定义的默认值。
B.1.1. 授权信息扩展默认
此默认附加授权信息访问扩展。此扩展指定应用程序验证证书如何访问信息,如在线验证服务和 CA 策略数据,以及签发证书的 CA。此扩展不应用于直接指向 CA 维护的 CRL 位置 ; CRL Distribution Points 扩展 第 B.1.7 节 “CRL Distribution Points Extension Default” 提供了有关 CRL 位置的引用。
有关这个扩展的常规信息,请参阅 第 B.3.1 节 “authorityInfoAccess”。
以下限制可使用此默认值定义:
- 扩展约束 ; 请参阅 第 B.2.4 节 “扩展约束”。
- 无限制; 请参阅 第 B.2.8 节 “No Constraint”。
此默认值最多可定义五个位置,每个位置的参数。在表格中使用 n 标记,以显示参数所关联的位置。
参数 | 描述 |
---|---|
Critical | 选择 true 来标记这个扩展关键; 选择 false 来标记非关键。 |
Method_n |
指定检索在 中出现扩展所发布证书的 CA 的其他信息的访问方法。这是以下值之一:
|
LocationType_n | 指定包含签发证书的 CA 的其他信息的位置的常规名称类型。这是以下类型之一:
|
Location_n |
指定地址或位置以获取签发证书的 CA 的额外信息。
|
Enable_n | 指定是否启用此位置。选择 true 将其标记为 set;选择 false 来禁用它。 |
B.1.2. 颁发机构键标识符默认值
此默认将授权密钥标识符扩展附加到证书。扩展标识与 CA 用来签署证书的私钥对应的公钥。这个默认没有参数。如果使用,这个扩展会包含在证书中,并包含公钥信息。
此默认值采用以下约束:
- 无限制; 请参阅 第 B.2.8 节 “No Constraint”。
有关这个扩展的常规信息,请参阅 第 B.3.2 节 “authorityKeyIdentifier”。
B.1.3. 身份验证令牌对象名称默认
此配置集默认根据身份验证令牌(AuthToken)对象中的属性值填充 subject 名称。
此默认插件可用于基于目录的身份验证管理器。基于 Directory 的用户 Dual-Use Certificate Enrollment 证书配置集有两个输入参数 UID 和密码。基于目录的身份验证管理器检查给定的 UID 和密码是否正确。
此外,基于目录的身份验证管理器可识别出发布证书的主题名称。它通过使用 AuthToken 中的用户的 DN 值来形成主题名称。
此默认值负责从 AuthToken 读取主体名称并将其放在证书请求中,以便最终证书包含主题名称。
以下限制可使用此默认值定义:
- 无限制; 请参阅 第 B.2.8 节 “No Constraint”。
B.1.4. 基本限制扩展默认值
此默认向证书附加 Basic Constraint 扩展。扩展标识证书管理器是否是一个 CA。该扩展也会在证书链验证过程中使用,以识别 CA 证书并应用证书链路径长度限制。
有关这个扩展的常规信息,请参阅 第 B.3.3 节 “basicConstraints”。
以下限制可使用此默认值定义:
- 基本限制扩展约束 ; 请参阅 第 B.2.1 节 “基本限制扩展约束”。
- 扩展约束 ; 请参阅 第 B.2.4 节 “扩展约束”。
- 无限制; 请参阅 第 B.2.8 节 “No Constraint”。
参数 | 描述 |
---|---|
Critical | 选择 true 来标记这个扩展关键; 选择 false 来标记非关键。 |
IsCA | 指定证书主题是否为 CA。使用 true 时,服务器会检查 PathLen 参数,并在证书中设置指定的路径长度。使用 false 时,服务器会将证书主题视为非 CA,并忽略为 PathLen 参数指定的值。 |
PathLen |
指定路径长度,在下面链接的最大 CA 证书数(从属至)发出的从属 CA 证书数。路径长度会影响在证书验证过程中使用的 CA 证书的数量。链从验证和移动的最终证书开始。
如果以长期证书设置了扩展,则 maxPathLen 参数无效。
允许的可能值为 0 或 n。该值应该小于 CA 签名证书的 Basic Constraints 扩展中指定的路径长度。0 指定在从属 CA 证书下不允许从属 CA 证书;在路径中只能跟踪终止证书。n 必须是大于零的整数。它指定从属 CA 证书下允许的最大下级 CA 证书数。
如果该字段为空,则路径长度默认为由签发者证书中的 Basic Constraints 扩展中设置的路径长度确定的值。如果签发者的路径长度不受限制,则从属 CA 证书中的路径长度也会无限。如果签发者的路径长度大于零,则从属 CA 证书中的路径长度将设置为比签发者的路径长度小的值;例如,如果签发者的路径长度为 4,则子协调 CA 证书中的路径长度将设置为 3。
|
B.1.5. CA 有效期默认值
这个默认在 CA 证书注册或续订配置集中添加选项以绕过 CA 的签名证书的过期约束。这意味着签发的 CA 证书可到期日期超过发出 CA 签名证书过期日期。
以下限制可使用此默认值定义:
- 有效期约束 ; 请参阅 第 B.2.14 节 “有效期约束”。
- 无限制; 请参阅 第 B.2.8 节 “No Constraint”。
参数 | 描述 |
---|---|
bypassCAnotafterrange | 为请求 CA 是否可以请求一个有效周期超过发出 CA 有效期期的证书设置默认值。 |
range | 指定此证书的绝对有效期期,以天为单位。 |
startTime | 根据当前时间,设置有效期时。 |
B.1.6. 证书策略扩展默认值
此默认将证书策略映射扩展附加到证书模板中。此扩展定义一个或多个策略,指示签发证书的策略以及可以使用该证书的目的。此默认值定义最多五个策略,但这个值可以被更改。
有关这个扩展的常规信息,请查看 第 B.3.4 节 “certificatePoliciesExt”
参数 | 描述 |
---|---|
Critical | 选择 true 来标记这个扩展关键; 选择 false 来标记非关键。 |
numCertPolicies | 指定可定义的策略数量。默认值为 5。 |
enable | 选择 true 以启用策略;选择 false 来禁用策略。 |
policyId | 指定策略的 OID 标识符。 |
cpsURI.enable | 扩展可以包括 URI 到签发者的证书声明。选择 true 以启用 URI;选择 false 来禁用 URI。 |
CPSURI.value | 此值是对 CA 发布的认证实践声明(CPS)的指针。指针采用 URI 的形式。 |
usernotice.enable | 扩展可以包括 URI 到签发者的证书声明,或者可以嵌入签发者信息,如用户以文本形式通知。选择 true 来启用用户通知;选择 false 来禁用用户通知。 |
usernotice.noticeReference.noticeNumbers | 此可选用户 notice 参数是一系列数字,指向其他位置存储的消息。 |
usernotice.noticeReference.organization | 此可选的 user notice 参数指定公司的名称。 |
usernotice.explicitText.value | 此可选用户 notice 参数包含证书内的消息。 |
B.1.7. CRL Distribution Points Extension Default
此默认将 CRL Distribution Points 扩展附加到证书。此扩展标识验证证书的应用程序可以获取 CRL 信息来验证证书的撤销状态的位置。
有关这个扩展的常规信息,请参阅 第 B.3.5 节 “CRLDistributionPoints”。
以下限制可使用此默认值定义:
- 扩展约束 ; 请参阅 第 B.2.4 节 “扩展约束”。
- 无限制; 请参阅 第 B.2.8 节 “No Constraint”。
此默认定义最多五个位置,其中包含每个位置的参数。在表格中使用 n 标记,以显示参数所关联的位置。
参数 | 描述 |
---|---|
Critical | 选择 true 来标记这个扩展关键; 选择 false 来标记非关键。 |
Type_n | 指定 CRL 分发点的类型。Permissible 值为 DirectoryName、URIName 或 RelativeToIssuer。这个类型必须与 Name 字段中的值对应。 |
Name_n |
指定 CRL 分发点的名称,名称可以是以下格式:
|
Reasons_n |
指定在分发点上维护的 CRL 所涉及到的撤销原因。提供以下常量的逗号分隔列表:
|
IssuerType_n |
指定在分发点上签名了 CRL 的签发者的命名类型。签发者名称可采用以下格式:
|
IssuerName_n |
指定为 CRL 签名的 CRL 签发者的名称格式。允许的允许的值如下:
此参数的值必须与 issuerName 字段中的值对应。
|
B.1.8. 扩展密钥使用扩展默认值
此默认向证书附加扩展密钥使用扩展。
有关这个扩展的常规信息,请参阅 第 B.3.6 节 “extKeyUsage”。
除使用密钥使用扩展中指示的基本目的外,扩展还可识别这些目的。例如,如果密钥使用扩展标识了签名密钥,则扩展密钥使用扩展可以缩小密钥只用于签名 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 |
1.3.6.1.4.1.311.10.3.4(EFS 证书)
1.3.6.1.4.1.311.10.3.4.1(EFS 恢复证书)
当用户丢失私钥以及需要使用该密钥加密的数据时,恢复代理使用 EFS 恢复证书。CertificateCertificate Systemnbsp;System 支持这两个 OID,并允许发布包含这些 OID 的扩展密钥使用扩展的证书。
普通用户证书应该只使用 EFS OID 而不是恢复 OID 创建。
以下限制可使用此默认值定义:
- 扩展密钥使用约束 ; 请参阅 第 B.2.3 节 “扩展密钥使用扩展约束”。
- 扩展约束 ; 请参阅 第 B.2.4 节 “扩展约束”。
- 无限制; 请参阅 第 B.2.8 节 “No Constraint”。
参数 | 描述 |
---|---|
Critical | 选择 true 来标记这个扩展关键; 选择 false 来标记非关键。 |
OID | 指定用于标识密钥使用用途的 OID。Permissible 值是一个唯一且有效的 OID,在点分隔的数字组件标记中指定。例如,2.16.840.1.113730.1.99。根据密钥使用目的,OID 可以被 PKIX(在 表 B.6 “扩展密钥使用方法的 PKIX 使用量定义”中列出)或自定义 OID 来指定。自定义 OID 必须位于公司使用的 ID 已注册子树中。虽然可以使用自定义 OID 评估和测试证书证书证书证书nbsp;System,在生产环境中,遵循用于定义 OID 和注册 ID 的 ISO 规则,但可以使用自定义 OID 进行评估和测试证书证书。 |
B.1.9. 最新的 CRL 扩展默认值
以下限制可使用此默认值定义:
- 扩展约束 ; 请参阅 第 B.2.4 节 “扩展约束”。
- 无限制; 请参阅 第 B.2.8 节 “No Constraint”。
此默认值定义了五个位置,其中包含每个位置的参数。在表格中使用 n 标记,以显示参数所关联的位置。
参数 | 描述 |
---|---|
Critical | 选择 true 来标记这个扩展关键; 选择 false 来标记非关键。 |
PointEnable_n | 选择 true 即可启用此点;选择 false 来禁用此点。 |
PointType_n | 指定发布点的类型,可以是 DirectoryName 或 URIName。 |
PointName_n |
|
PointIssuerName_n |
指定已签署 CRL 的签发者的名称。名称可采用以下格式:
name 值必须符合 PointType_ 中指定的格式。
|
PointType_n | 指定为 CRL 签名的 CRL 签发者的一般名称类型。允许的允许的值如下:
|
B.1.10. 通用扩展默认
此扩展允许使用用户决定的数据创建通用扩展。默认确保正确填充通用扩展。
参数 | 描述 |
---|---|
Critical | 选择 true 来标记这个扩展关键; 选择 false 来标记非关键。 |
genericExtOID | 指定 extensions OID 标识符。 |
genericExtData | 扩展中包含的二进制数据。 |
B.1.11. 禁止任何策略扩展默认值
禁止任何策略扩展可用于向 CA 发布的证书。禁止 any-policy 表示特殊的 anyPolicy OID(值为 { 2 5 29 32 0 })并不被视为其他证书策略的显式匹配项。
参数 | 描述 |
---|---|
Critical | 这个策略必须标记为 critical。选择 true 来标记这个扩展关键; 选择 false 来标记非关键。 |
SkipCerts | 此参数指定在不再允许任何策略前可能会出现在路径中的额外证书数量。值 1 表示,任何策略可能会被处理在此证书上发布的证书,但不能处理路径中的额外证书。 |
B.1.12. 签发者备用名称扩展默认值
以下限制可使用此默认值定义:
- 扩展约束 ; 请参阅 第 B.2.4 节 “扩展约束”。
- 无限制; 请参阅 第 B.2.8 节 “No Constraint”。
此默认值定义了五个位置,其中包含每个位置的参数。在表格中使用 n 标记,以显示参数所关联的位置。
参数 | 描述 |
---|---|
Critical | 选择 true 来标记这个扩展关键; 选择 false 来标记非关键。 |
issuerAltExtType | 这将设置要使用的名称扩展类型,它可以是以下之一:
|
issuerAltExtPattern |
指定要在扩展中包含的 request 属性值。属性值必须符合任何受支持的通用名称类型。permissible 值是证书请求中包含的 request 属性。
如果服务器在请求中找到 属性,它将在扩展中设置属性值,并为证书添加扩展。如果指定了多个属性,且请求中没有包括任何属性,服务器不会为证书添加 Issuer Alternative Name 扩展。如果不能从请求中使用合适的属性组成 issuerAlternativeName,则可以在不用任何令牌表达式的情况下使用字面字符串。例如,证书授权中心。
|
B.1.13. 主要使用扩展默认值
此默认将 Key Usage 扩展附加到证书。扩展指定使用证书中包含的密钥的目的,如数据签名、密钥加密或数据加密,其限制对使用密钥来预先确定的目的。
有关这个扩展的常规信息,请参阅 第 B.3.8 节 “keyUsage”。
以下限制可使用此默认值定义:
- 密钥使用约束 ; 请参阅 第 B.2.6 节 “主要使用扩展约束”。
- 扩展约束 ; 请参阅 第 B.2.4 节 “扩展约束”。
- 无限制; 请参阅 第 B.2.8 节 “No Constraint”。
参数 | 描述 |
---|---|
Critical | 选择 true 来标记这个扩展关键; 选择 false 来标记非关键。 |
digitalSignature | 指定是否允许签名 SSL 客户端证书和 S/MIME 签名证书。选择 true 来设置。 |
nonRepudiation | 指定是否将 用于 S/MIME 签名证书。选择 true 来设置。
WARNING
使用这个位是简介的。在为任何证书设置前,请仔细考虑其使用的合法后果。
|
keyEncipherment | 指定主体中的公钥是否用于隔离私钥或 secret 密钥。这是为 SSL 服务器证书和 S/MIME 加密证书设置的。选择 true 来设置。 |
dataEncipherment | 指定在使用主体的公钥而非密钥材料时,是否设置扩展。选择 true 来设置。 |
keyAgreement | 指定每当将主题的公钥用于密钥协议时,是否设置扩展。选择 true 来设置。 |
keyCertsign | 指定公钥是否用于验证其他证书的签名。此设置用于 CA 证书。选择 true 来设置 选项。 |
cRLSign | 指定是否为为 CRL 签名的 CA 签名证书设置扩展。选择 true 来设置。 |
encipherOnly | 指定当公钥只在执行密钥协议时加密数据时是否设置扩展。如果设置了这个位,则还应设置 keyAgreement。选择 true 来设置。 |
decipherOnly | 指定当公钥只在执行密钥协议时解密数据时是否设置扩展。如果设置了这个位,则还应设置 keyAgreement。选择 true 来设置。 |
B.1.14. 名称限制扩展默认值
此默认为证书附加一个 Name Constraints扩展。扩展用于在 CA 证书中指明应位于证书链中主题名称或主题备用名称的命名空间。
有关这个扩展的常规信息,请参阅 第 B.3.9 节 “nameConstraints”。
以下限制可使用此默认值定义:
- 扩展约束 ; 请参阅 第 B.2.4 节 “扩展约束”。
- 无限制; 请参阅 第 B.2.8 节 “No Constraint”。
此默认值为允许的子树和排除子树定义最多五个位置,并为每个位置设置参数。在表格中使用 n 标记,以显示参数所关联的位置。
参数 | 描述 |
---|---|
Critical | 选择 true 来标记这个扩展关键; 选择 false 来标记非关键。 |
PermittedSubtreesn.min |
指定允许的子树的最小数量。
|
PermittedSubtreesmax_n |
指定允许的子树的最大数量。
|
PermittedSubtreeNameChoice_n | 指定要在扩展中包含允许的子树的常规名称类型。允许的允许的值如下:
|
PermittedSubtreeNameValue_n |
指定要在扩展中包含允许的子树的常规名称值。
|
PermittedSubtreeEnable_n | 选择 true 启用这个允许的子树条目。 |
ExcludedSubtreesn.min |
指定排除子树的最小数量。
|
ExcludedSubtreeMax_n |
指定排除子树的最大数量。
|
ExcludedSubtreeNameChoice_n | 指定要包含在扩展中的排除子树的常规名称类型。允许的允许的值如下:
|
ExcludedSubtreeNameValue_n |
指定要在扩展中包含允许的子树的常规名称值。
|
ExcludedSubtreeEnable_n | 选择 true 来启用此排除子树条目。 |
B.1.15. Netscape Certificate Type Extension Default
WARNING
这个扩展已过时。改为使用 Key Usage 或 Extended Key Usage 证书扩展。
此默认向证书附加 Netscape 证书类型扩展。扩展标识证书类型,如 CA 证书、服务器 SSL 证书、客户端 SSL 证书或 S/MIME 证书。这将限制使用证书来预先确定的目的。
B.1.16. Netscape Comment Extension 默认
WARNING
这个扩展已过时。
此默认向证书附加 Netscape Comment 扩展。该扩展可用于在证书中包含文本注释。能够解释注释的应用程序在证书被使用或查看时显示它。
有关这个扩展的常规信息,请参阅 第 B.4.3.2 节 “netscape-comment”。
以下限制可使用此默认值定义:
- 扩展约束 ; 请参阅 第 B.2.4 节 “扩展约束”。
- 无限制; 请参阅 第 B.2.8 节 “No Constraint”。
参数 | 描述 |
---|---|
Critical | 选择 true 来标记这个扩展关键; 选择 false 来标记非关键。 |
CommentContent | 指定要在证书中出现的注释的内容。 |
B.1.17. 没有默认扩展
如果没有使用默认值,可以使用这个默认值来设置限制。这个默认值没有设置,且没有默认值,但允许设置所有限制。
B.1.18. OCSP No Check Extension Default
这会默认为证书附加 OCSP No Check 扩展。只在 OCSP 响应器证书中使用扩展,指示与 OCSP 兼容的应用程序如何检查证书的撤销状态,并使用授权 OCSP 响应为 OCSP 响应签名。
有关这个扩展的常规信息,请参阅 第 B.3.10 节 “OCSPNocheck”。
以下限制可使用此默认值定义:
- 扩展约束 ; 请参阅 第 B.2.4 节 “扩展约束”。
- 无限制; 请参阅 第 B.2.8 节 “No Constraint”。
参数 | 描述 |
---|---|
Critical | 选择 true 来标记这个扩展关键; 选择 false 来标记非关键。 |
B.1.19. 策略限制扩展默认值
此默认值为证书附加一个策略限制扩展。扩展仅可用于 CA 证书,以两种方式限制路径验证:要禁止策略映射,或者要求路径中的每个证书都包含可接受的策略标识符。默认值可以同时指定 ReqExplicitPolicy 和 InhibitPolicyMapping。PKIX 标准要求,如果证书中存在,则扩展不能由 null 序列组成。必须至少存在两个指定字段之一。
有关这个扩展的常规信息,请参阅 第 B.3.11 节 “policyConstraints”。
以下限制可使用此默认值定义:
- 扩展约束 ; 请参阅 第 B.2.4 节 “扩展约束”。
- 无限制; 请参阅 第 B.2.8 节 “No Constraint”。
参数 | 描述 |
---|---|
Critical | 选择 true 来标记这个扩展关键; 选择 false 来标记非关键。 |
reqExplicitPolicy |
指定在需要显式策略前路径中允许的证书总数。这是在需要可接受的策略前,可串联在下级 CA 证书下的 CA 证书的数量。
这个数字会影响在证书验证过程中要使用的 CA 证书数量。链从验证和移动链的最终证书开始。如果以长期证书设置了扩展,则参数无效。
|
inhibitPolicyMapping |
在不再允许策略映射前,指定路径中允许的证书总数。
|
B.1.20. 策略映射程序扩展默认
此默认向证书附加 Policy Mappings 扩展。扩展列出了 OID 对,每个对标识两个 CA 的策略语句。对表示一个 CA 的对应策略等同于另一个 CA 的策略。在跨认证上下文中,扩展可能很有用。如果支持,扩展仅包含在 CA 证书中。默认将一个 CA 的策略语句映射到另一个 CA,方法是对分配给其策略声明的 OID 进行匹配
每个对都由两个参数: issuerDomainPolicy 和 subjectDomainPolicy 定义。对称发出 CA 会考虑与主题 CA 的 subjectDomainPolicy 等效的 issuerDomainPolicy。发出 CA 的用户可能会接受特定应用程序的 issuerDomainPolicy。策略映射告知这些用户与主题 CA 关联的策略等同于其接受的策略。
有关这个扩展的常规信息,请参阅 第 B.3.12 节 “policyMappings”。
以下限制可使用此默认值定义:
- 扩展约束 ; 请参阅 第 B.2.4 节 “扩展约束”。
- 无限制; 请参阅 第 B.2.8 节 “No Constraint”。
参数 | 描述 |
---|---|
Critical | 选择 true 来标记这个扩展关键; 选择 false 来标记非关键。 |
IssuerDomainPolicy_n | 指定分配给发布 CA 的 policy 语句的 OID,以便与另一个 CA 的 policy 语句映射。例如,1.2.3.4.5。 |
SubjectDomainPolicy_n | 指定分配给发布 CA 的主题 CA 的 policy 语句的 OID,该语句与发出 CA 的 policy 语句对应。例如: 6.7.8.9.10。 |
B.1.21. 私钥使用周期扩展默认值
Private Key Usage Period 扩展允许证书签发者为私钥指定不同于证书本身的有效周期。这个扩展用于数字签名密钥。
参数 | 描述 |
---|---|
Critical | 这个扩展应该总是非关键。 |
puStartTime | 此参数设置开始时间。默认值为 0, 它从激活扩展时开始有效周期。 |
puDurationDays | 此参数设置用量周期的时间。默认值为 365,它从激活扩展时将有效期期设置为 365 天。 |
B.1.22. 签名算法
此默认在证书请求中附加签名算法。此默认向代理提供可能的算法,可用于签署证书。
以下限制可使用此默认值定义:
- 签名算法; 请参阅 第 B.2.10 节 “签名算法”。
- 无限制; 请参阅 第 B.2.8 节 “No Constraint”。
参数 | 描述 |
---|---|
signingAlg | 指定要用于创建此证书的默认签名算法。代理可通过指定 签名AlgsAllowed 参数中包含的值之一来覆盖这个值。 |
signingAlgsAllowed | 指定可用于为此证书签名的签名算法。这些算法可以是以下任意一种或全部算法:
|
B.1.23. 主题名称扩展默认值
此默认向证书附加 Subject Alternative Name 扩展。扩展将其他身份(如电子邮件地址、DNS 名称、IP 地址(包括 IPv4 和 IPv6)绑定到证书的主题。标准要求如果证书主题字段包含空序列,那么主题备用名称扩展必须包含主题的替代名称,并且扩展名标记为关键。
对于任何基于目录的身份验证方法,证书Certificate Systemnbsp;System 可以检索任何字符串和字节属性的值,并在证书请求中设置它们。这些属性通过在自动注册模块中定义的 ldapStringAttributes 和 ldapByteAttributes 字段中输入它们进行设置。
如果验证的属性 - 存储在 LDAP 数据库中的属性需要是该扩展的一部分,则使用 $request.X$ token 的值。
另外有一个额外的属性,可将通用唯一标识符(UUID)插入到 subject alt name 中。这个选项为版本 4 UUID 生成随机数字;通过引用服务器来定义该模式,该服务器将在额外的 subjAltExtSource 参数中生成数字。
示例中配置了基本的主题备用名称扩展默认设置。
例 B.1. 默认主题备用名称扩展配置
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=4
Subject Alternative Name 扩展默认检查配置集属性的证书请求。如果请求包含属性,则配置集会读取其值并将其设置在 扩展名中。如果配置了基于 LDAP 的身份验证,则 Subject Alternative Name 扩展默认为从 LDAP 目录中插入属性值。添加到证书中的扩展包含所有配置的属性。
可以与 Subject Alternative Name 扩展默认使用的变量列在 表 B.20 “在主题备用名称中插入值的变量” 中。
策略设置令牌 | 描述 |
---|---|
$request.auth_token.cn$ | 请求证书的用户的 LDAP 通用名称(cn )属性。 |
$request.auth_token.mail$ | 请求证书的用户的 LDAP 电子邮件(邮件 )属性值。 |
$request.auth_token.tokenCertSubject$ | 证书主题名称。 |
$request.auth_token.uid$ | 请求证书的用户的 LDAP 用户 ID(uid )属性。 |
$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,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:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF: FF:FF:FF:FF: FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF: FF |
$request.profileRemoteHost$ | 用户机器的主机名或 IP 地址。主机名可以是完全限定域名和协议,如 http://server.example.com。IPv4 地址的格式必须为 n.n.n 或 n .n.n,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:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF: FF:FF:FF:FF: FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF: FF |
$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$. |
可以为单个扩展设置多个属性。subjAltNameNumGNs 参数控制在证书中添加所需列出属性的数量。此参数必须添加到自定义配置集中,可能需要在默认配置集中修改,以根据需要包含任意数量的属性。在 例 B.1 “默认主题备用名称扩展配置” 中,subjAltNameNumGNs 设置为 3,以插入 RFC822Name、DNSName 和 URIName 名称(通用名称 _ 0、_1 和 _2)。
以下限制可使用此默认值定义:
- 扩展约束 ; 请参阅 第 B.2.4 节 “扩展约束”。
- 无限制; 请参阅 第 B.2.8 节 “No Constraint”。
参数 | 描述 |
---|---|
Critical | 选择 true 来标记这个扩展关键; 选择 false 来标记非关键。 |
pattern | 指定要在扩展中包含的 request 属性值。属性值必须符合任何受支持的通用名称类型。如果服务器在请求中找到 属性,它将在扩展中设置属性值,并为证书添加扩展。如果指定了多个属性,且请求中没有包括任何属性,服务器不会为证书添加 Subject Alternative Name 扩展。permissible 值是证书请求中包含的 request 属性。例如,$request.requestor_email$. |
类型 |
指定 request 属性的一般名称类型。
|
源 | 指定用于生成 ID 的标识源或协议。唯一支持的来源是 UUID4,它会生成一个随机数字来创建 UUID。 |
组件数量(NumGN) | 指定在主题备用名称中包含的名称组件数量。 |
B.1.24. 主题目录属性扩展默认值
此默认值为证书附加 Subject Directory 属性扩展。Subject Directory 属性扩展为证书主体提供任何所需的目录属性值。
以下限制可使用此默认值定义:
- 扩展约束 ; 请参阅 第 B.2.4 节 “扩展约束”。
- 无限制; 请参阅 第 B.2.8 节 “No Constraint”。
参数 | 描述 |
---|---|
Critical | 选择 true 来标记这个扩展关键; 选择 false 来标记非关键。 |
名称 | 属性名称;这可以是任何 LDAP 目录属性,如 cn 或 mail 。 |
pattern | 指定要在扩展中包含的 request 属性值。属性值必须符合属性的允许值。如果 server 找到 属性,它将在扩展中设置属性值,并为证书添加扩展。如果指定了多个属性,并且请求中不存在任何属性,服务器不会将 Subject Directory Attributes 扩展添加到证书。例如,$request.requestor_email$. |
启用 | 设置该属性是否能够添加到证书中。选择 true 来启用属性。 |
B.1.25. 主题信息扩展默认
实施注册默认策略,该策略在证书模板中填充使用者信息访问扩展。此扩展指示了如何访问该扩展出现在证书中的主题的信息和服务。
参数 | 描述 |
---|---|
Critical | 这个扩展应该不是关键。 |
subjInfoAccessNumADs | 证书中包含的信息访问部分数量。 |
subjInfoAccessADMethod_n | 访问方法的 OID。 |
subjInfoAccessADMethod_n | 访问方式类型。
|
subjInfoAccessADLocation_n |
基于类型 subjInfoAccessADMethod_n 的位置
i.e.,URI 名称的 URL。
|
subjInfoAccessADEnable_n | 选择 true 以启用这个扩展 ; 选择 false 来禁用这个扩展。 |
B.1.26. 主题键标识符默认
此默认向证书附加一个 Subject Key Identifier 扩展。扩展标识包含特定公钥的证书,该密钥从具有相同主题名称的几项中标识证书。
有关这个扩展的常规信息,请参阅 第 B.3.16 节 “subjectKeyIdentifier”。
如果启用,配置集在扩展尚不存在时为注册请求添加 Subject Key Identifier 扩展。如果请求中存在扩展(如 CRMF 请求),则默认替换扩展。代理批准手动注册请求后,配置集接受已经存在的任何 Subject Key Identifier Extension。
这个默认没有参数。如果使用,这个扩展会包含在证书中,并包含公钥信息。
以下限制可使用此默认值定义:
- 扩展约束 ; 请参阅 第 B.2.4 节 “扩展约束”。
- 无限制; 请参阅 第 B.2.8 节 “No Constraint”。
B.1.27. 主题名称默认
这个默认会将服务器端可配置主体名称附加到证书请求。静态主题名称用作证书中的主题名称。
以下限制可使用此默认值定义:
- 主题名称约束 ; 请参阅 第 B.2.11 节 “主题名称约束”。
- 唯一的 Subject Name Constraint; 请参阅 第 B.2.13 节 “唯一的 Subject Name Constraint”。
- 无限制; 请参阅 第 B.2.8 节 “No Constraint”。
参数 | 描述 |
---|---|
名称 | 指定此证书的主题名称。 |
如果您需要从 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. 用户密钥默认值
此默认将用户提供的密钥附加到证书请求中。这是必需默认值。密钥是注册请求的一部分。
以下限制可使用此默认值定义:
- 键约束; 请参阅 第 B.2.5 节 “键约束”。
- 无限制; 请参阅 第 B.2.8 节 “No Constraint”。
B.1.29. 用户签名算法
此默认实施注册默认配置集,该配置集填充证书请求的用户提供的签名算法。如果证书配置集中包含,允许用户根据约束集选择证书的签名算法。
不会在注册表单中添加签名算法选项,但可以提交包含此信息的请求。
以下限制可使用此默认值定义:
- 签名算法; 请参阅 第 B.2.10 节 “签名算法”。
- 无限制; 请参阅 第 B.2.8 节 “No Constraint”。
B.1.30. 用户主题名称默认
此默认将用户提供的主题名称附加到证书请求。如果包含在证书配置集中,它允许用户提供证书的主体名称,这取决于限制集。这个扩展会保留在签发证书时在原始证书请求中指定的主题名称。
以下限制可使用此默认值定义:
- 主题名称约束 ; 请参阅 第 B.2.11 节 “主题名称约束”。
- 唯一的 Subject Name Constraint; 请参阅 第 B.2.13 节 “唯一的 Subject Name Constraint”。
- 无限制; 请参阅 第 B.2.8 节 “No Constraint”。
B.1.31. 用户有效期默认值
此默认向用户提供证书请求的有效性。如果包含在证书配置集中,它允许用户提供有效期周期,这取决于限制集。这个默认配置集保留在签发证书时,在原始证书请求中用户定义的有效期期。
不提供向注册表单添加用户提供的有效日期的输入,但可以提交包含此信息的请求。
以下限制可使用此默认值定义:
- 有效期约束 ; 请参阅 第 B.2.14 节 “有效期约束”。
- 无限制; 请参阅 第 B.2.8 节 “No Constraint”。
B.1.32. 用户补充默认设置
用户补充的扩展默认类会在证书请求中使用用户定义的任何证书扩展填充证书。这要求用户提交满足特定标准或提供某些信息的证书请求,因为配置集在注册证书前需要特定的扩展。
WARNING
请特别小心设置此扩展默认设置,因为它允许用户在证书请求中指定扩展。如果使用了这个默认值,则 Red Hatnbsp;强烈建议您使用与扩展对应的约束来尽可能减少用户补充的 Extension 默认可能。
用户定义的扩展会根据设置的任何约束进行验证,因此可以限制扩展类型(通过 Extension Constraint)或为密钥和其他基本约束设置规则,如是否是一个 CA 证书。
注意
如果在带有对应 OID(Extension Constraint)的配置集上设置此扩展,那么通过该配置集处理的任何证书请求 都必须 执行指定的扩展,或者请求被拒绝。
如果在勘误 RHSA 2008:0500 之前使用 User Supplied Extension Default 启用了证书配置集,则必须编辑此配置集以支持证书请求中的用户提供的扩展。应用 userExtensionDefaultImpl 默认,如示例所示。给定的 OID 用于基本限制扩展约束。
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 通过以下三种方法之一使用用户所提供的扩展扩展默认值处理注册:
- 如果在证书请求和默认值中指定扩展的 OID,则扩展由约束验证并应用到证书。
- 如果在请求中给出了扩展的 OID,但没有在配置集中的"用户补充扩展"中指定,则用户指定的扩展名将被忽略,且证书在没有该扩展的情况下被成功注册。
- 如果在带有对应 OID(Extension Constraint)的配置集上设置此扩展,那么通过该配置集处理的任何证书请求 都必须 执行指定的扩展,或者请求被拒绝。
包含用户定义的扩展的证书请求必须提交到配置集。但是,证书注册表单用户没有任何输入字段来添加用户提供的扩展。在不提供扩展的情况下提交证书请求会失败。
例 B.2 “用户为扩展密钥使用扩展扩展默认值” 使用扩展密钥使用约束将用户补充扩展默认值添加到配置集中。
userExtOID
参数中指定的 OID 用于扩展密钥使用范围。
例 B.2. 用户为扩展密钥使用扩展扩展默认值
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
在 例 B.2 “用户为扩展密钥使用扩展扩展默认值” 中,尽管用户补充一个 Extension Default 允许用户指定扩展密钥使用 Extension(2.5.29.37),但约束会将用户请求限制为只有 SSL 客户端身份验证(1.3.6.1.5.5.7.3.2)和电子邮件保护(1.3.6.5.5.7.3.4)使用。
编辑配置集请参考 第 3.2 节 “设置证书配置集”。
例 B.3. CSR 中的多个用户提供的扩展
RHCS 注册配置集框架允许在同一配置集中定义多个用户补充扩展。例如,可以指定以下组合:
- 对于扩展密钥使用:
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
- 对于主要使用范围:使用以下格式,您可以应用扩展参数的策略:
- 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 的示例,请参阅 第 5.2.1.1.2 节 “使用
certutil
使用用户定义的扩展来创建 CSR”。
B.1.33. 有效性默认值
这个默认会将服务器端可配置的有效期期附加到证书请求中。
以下限制可使用此默认值定义:
- 有效期约束 ; 请参阅 第 B.2.14 节 “有效期约束”。
- 无限制; 请参阅 第 B.2.8 节 “No Constraint”。
参数 | 描述 |
---|---|
range | 指定此证书的有效性周期。 |
startTime | 根据当前时间,设置有效期时。 |