附录 B. 证书和 CRL 的默认值、约束和扩展
本附录解释了 X.509 v3 定义的标准证书扩展,以及 Netscape 定义的标准证书扩展,它们在完成 X.509 v3 之前发布的产品版本中使用的扩展。它为扩展提供特定类型证书的建议,包括 PKIX Part 1 建议。
重要
本附录是对使用或可在 Red Hat Certificate System 中配置的默认值、约束和 CRL 扩展的引用。有关证书和 CRL 扩展的完整参考和解释,请参阅 RFC 3280。
本附录包含以下部分:
B.1. 默认参考
默认用于定义证书的内容。本节列出并定义预定义的默认值。
B.1.1. 授权信息访问默认扩展
此默认附加授权信息访问扩展。此扩展指定应用程序如何验证证书如何访问信息,如在线验证服务和 CA 策略数据,关于已签发证书的 CA。此扩展不应用于直接指向 CA 维护的 CRL 位置; CRL 分发点扩展 第 B.1.7 节 “CRL 分发点扩展默认” 提供 CRL 位置的引用。
有关此扩展的一般信息,请参考 第 B.3.1 节 “authorityInfoAccess”。
此默认值可以定义以下限制:
- 扩展约束 ; 请参阅 第 B.2.4 节 “扩展约束”。
- 无限制 ; 请参阅 第 B.2.8 节 “没有约束”。
此默认值最多可定义五个位置,每个位置的参数。参数在表中标有 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 节 “没有约束”。
有关此扩展的一般信息,请参考 第 B.3.2 节 “authorityKeyIdentifier”。
B.1.3. 身份验证令牌主题名称默认值
此配置集默认根据身份验证令牌(AuthToken)对象中的属性值填充主题名称。
此默认插件可用于基于目录的身份验证管理器。基于目录的用户双用途证书注册证书配置文件有两个输入参数:UID 和密码。基于目录的身份验证管理器检查给定的 UID 和密码是否正确。
另外,基于目录的身份验证管理器对签发证书的主题名称进行公式。它使用来自 AuthToken 的用户 DN 值形成主题名称。
此默认负责从 AuthToken 读取主题名称,并将其放在证书请求中,以便最终证书包含主题名称。
此默认值可以定义以下限制:
- 无限制 ; 请参阅 第 B.2.8 节 “没有约束”。
B.1.4. 基本限制扩展默认
此默认将 Basic Constraint 扩展附加到证书。扩展标识证书管理器是否为 CA。证书链验证过程中也会使用扩展来识别 CA 证书并应用证书链长度限制。
有关此扩展的一般信息,请参考 第 B.3.3 节 “basicConstraints”。
此默认值可以定义以下限制:
- 基本限制约束约束 ; 请参阅 第 B.2.1 节 “基本约束约束”。
- 扩展约束 ; 请参阅 第 B.2.4 节 “扩展约束”。
- 无限制 ; 请参阅 第 B.2.8 节 “没有约束”。
参数 | 描述 |
---|---|
Critical | 选择 true 来标记此扩展关键;选择 false 来标记非关键扩展名。 |
IsCA | 指定证书主题是否为 CA。使用 true 时,服务器会检查 PathLen 参数,并在证书中设置指定的路径长度。使用 false 时,服务器会将证书主题视为非 CA,并忽略为 PathLen 参数指定的值。 |
PathLen |
指定路径长度,可按以下链的最大 CA 证书数(从属到)要发布的 CA 证书。路径长度会影响在证书验证过程中使用的 CA 证书数量。链从验证和移动的最终证书开始。
如果在最终用户证书中设置了扩展,则 maxPathLen 参数无效。
允许的值为 0 或 n。该值应小于 CA 签名证书的基本限制扩展中指定的路径长度。0 指定在从属 CA 证书下不允许从属 CA 证书;在路径中只能有一个最终用户证书。N 必须是大于零的整数。它指定在从属 CA 证书下允许的最大从属 CA 证书数。
如果该字段为空,则路径长度默认为由签发者证书中基本限制扩展中设置的值决定的值。如果签发者的路径长度没有限制,则从属 CA 证书中的路径长度也会不受限制。如果签发者的路径长度大于零的整数,则从属 CA 证书中的路径长度将设置为小于签发者路径长度的值;例如,如果签发者的路径长度为 4,则从属 CA 证书的路径长度将被设置为 3。
|
B.1.5. CA Validity 默认
此默认向 CA 证书注册或续订配置文件添加一个选项,以绕过 CA 的签名证书的过期约束。这意味着发布的 CA 证书可以有过期日期,其日期超过签发 CA 签名证书过期日期。
此默认值可以定义以下限制:
- 有效约束 ; 请参阅 第 B.2.14 节 “有效约束”。
- 无限制 ; 请参阅 第 B.2.8 节 “没有约束”。
参数 | 描述 |
---|---|
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 | 此可选用户通知参数是指向其他位置存储的消息的一系列数字。 |
usernotice.noticeReference.organization | 此可选 user notice 参数指定公司的名称。 |
usernotice.explicitText.value | 此可选 user notice 参数包含证书内的消息。 |
B.1.7. CRL 分发点扩展默认
此默认将 CRL 分发点扩展附加到证书。此扩展标识验证证书的应用程序可以从中获取 CRL 信息的位置,以验证证书的撤销状态。
有关此扩展的一般信息,请参考 第 B.3.5 节 “CRLDistributionPoints”。
此默认值可以定义以下限制:
- 扩展约束 ; 请参阅 第 B.2.4 节 “扩展约束”。
- 无限制 ; 请参阅 第 B.2.8 节 “没有约束”。
此默认值定义最多五个位置,以及每个位置的参数。参数在表中标有 n,以显示参数关联的位置。
参数 | 描述 |
---|---|
Critical | 选择 true 来标记此扩展关键;选择 false 来标记非关键扩展名。 |
Type_n | 指定 CRL 分发点的类型。可能的值有 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”。
除了 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 |
1.3.6.1.4.1.311.10.3.4 (EFS 证书)
1.3.6.1.4.1.311.10.3.4.1 (EFS 恢复证书)
当用户丢失私钥且需要使用该密钥加密的数据时,恢复代理会使用 EFS 恢复证书。证书系统支持这两个 OID,并允许签发包含这些 OID 的扩展密钥用法扩展的证书。
普通用户证书应该只使用 EFS OID 创建,而不是恢复 OID。
此默认值可以定义以下限制:
- 扩展键使用约束 ; 请参阅 第 B.2.3 节 “扩展键使用约束”。
- 扩展约束 ; 请参阅 第 B.2.4 节 “扩展约束”。
- 无限制 ; 请参阅 第 B.2.8 节 “没有约束”。
参数 | 描述 |
---|---|
Critical | 选择 true 来标记此扩展关键;选择 false 来标记非关键扩展名。 |
OID | 指定标识键使用目的的 OID。允许的数值是唯一的、由点分开的数字组件标记中指定的有效 OID。例如: 2.16.840.1.113730.1.99。根据键使用目的,OID 可以被 PKIX (在 表 B.6 “用于扩展密钥用法扩展的 PKIX 使用定义”中列出)或自定义 OID 指定。自定义 OID 必须位于为公司使用保留的 ID 的注册子树中。虽然可以使用自定义 OID 来评估和测试证书系统,但在生产环境中,遵守 ISO 规则来定义 OID 和 ID 的注册子树。 |
B.1.9. Newest CRL 扩展默认值
此默认值可以定义以下限制:
- 扩展约束 ; 请参阅 第 B.2.4 节 “扩展约束”。
- 无限制 ; 请参阅 第 B.2.8 节 “没有约束”。
此默认定义五个位置,以及每个位置的参数。参数在表中标有 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 的证书。禁止任何策略表示特殊 anyPolicy OID,值为 { 2 5 29 32 0 },不被视为其他证书策略的显式匹配。
参数 | 描述 |
---|---|
Critical | 此策略必须标记为关键策略。选择 true 来标记此扩展关键;选择 false 来标记非关键扩展名。 |
SkipCerts | 此参数指定在不再允许任何策略前可能出现在路径中的额外证书数量。值 1 表示可在该证书主题发布的证书中处理任何策略,但不能在路径中的其他证书中处理。 |
B.1.12. 签发者备用名称扩展默认
此默认值可以定义以下限制:
- 扩展约束 ; 请参阅 第 B.2.4 节 “扩展约束”。
- 无限制 ; 请参阅 第 B.2.8 节 “没有约束”。
此默认定义五个位置,以及每个位置的参数。参数在表中标有 n,以显示参数关联的位置。
参数 | 描述 |
---|---|
Critical | 选择 true 来标记此扩展关键;选择 false 来标记非关键扩展名。 |
issuerAltExtType | 这会设置要使用的名称扩展类型,可以是以下之一:
|
issuerAltExtPattern |
指定要包含在扩展中的 request 属性值。属性值必须符合任何受支持的通用名称类型。permissable 值是证书请求中包含的 request 属性。
如果服务器在请求中找到属性,它会在扩展中设置属性值,并将扩展添加到证书。如果指定了多个属性,且请求中不存在任何属性,则服务器不会向证书添加 Issuer Alternative Name 扩展。如果没有从请求中使用合适的属性来组成 issuerAlternativeName,那么可在没有任何令牌表达式的情况下使用字面字符串。例如,证书颁发机构。
|
B.1.13. 密钥使用扩展默认值
此默认将 Key Usage 扩展附加到证书。扩展指定应使用证书中包含的密钥的目的,如数据签名、密钥加密或数据加密,这限制了密钥对的使用为预先确定的目的。
有关此扩展的一般信息,请参考 第 B.3.8 节 “keyUsage”。
此默认值可以定义以下限制:
- 关键使用约束 ; 请参阅 第 B.2.6 节 “关键使用扩展约束”。
- 扩展约束 ; 请参阅 第 B.2.4 节 “扩展约束”。
- 无限制 ; 请参阅 第 B.2.8 节 “没有约束”。
参数 | 描述 |
---|---|
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 节 “没有约束”。
此默认值为允许子树和排除的子树定义最多五个位置,并为每个位置设置参数。参数在表中标有 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 证书类型扩展默认
WARNING
这个扩展已过时。改为使用 Key Usage 或 Extended Key Usage 证书扩展。
此默认将 Netscape 证书类型扩展附加到证书。扩展标识证书类型,如 CA 证书、服务器 SSL 证书、客户端 SSL 证书或 S/MIME 证书。这限制了将证书的使用为预先确定的目的。
B.1.16. Netscape comment Extension Default
WARNING
这个扩展已过时。
此默认为证书附加 Netscape 注释扩展。扩展可用于在证书中包含文本注释。在使用或查看证书时,可以解释注释的应用程序会显示它。
有关此扩展的常规信息,请参考 第 B.4.3.2 节 “Netscape-comment”。
此默认值可以定义以下限制:
- 扩展约束 ; 请参阅 第 B.2.4 节 “扩展约束”。
- 无限制 ; 请参阅 第 B.2.8 节 “没有约束”。
参数 | 描述 |
---|---|
Critical | 选择 true 来标记此扩展关键;选择 false 来标记非关键扩展名。 |
CommentContent | 指定要出现在证书中的注释内容。 |
B.1.17. 没有默认扩展
在不使用默认值时,可以使用此默认值来设置限制。这个默认值没有设置,且没有设置默认值,但允许设置所有约束。
B.1.18. OCSP 没有检查默认扩展
这个默认为证书附加一个 OCSP No Check 扩展。这个扩展只在 OCSP 响应器证书中使用,指示与 OCSP 兼容的应用程序如何验证授权 OCSP 响应的证书的撤销状态。
有关此扩展的一般信息,请参考 第 B.3.10 节 “OCSPNocheck”。
此默认值可以定义以下限制:
- 扩展约束 ; 请参阅 第 B.2.4 节 “扩展约束”。
- 无限制 ; 请参阅 第 B.2.8 节 “没有约束”。
参数 | 描述 |
---|---|
Critical | 选择 true 来标记此扩展关键;选择 false 来标记非关键扩展名。 |
B.1.19. 策略限制默认
此默认为证书附加策略约束扩展。扩展,它只可用于 CA 证书,以两种方式限制路径验证:要禁止策略映射,或要求路径中的每个证书都包含可接受的策略标识符。默认值可同时指定 ReqExplicitPolicy 和 InhibitPolicyMapping。PKIX 标准要求证书中存在时,扩展不得由空序列组成。必须至少有两个指定字段之一。
有关此扩展的一般信息,请参考 第 B.3.11 节 “policyConstraints”。
此默认值可以定义以下限制:
- 扩展约束 ; 请参阅 第 B.2.4 节 “扩展约束”。
- 无限制 ; 请参阅 第 B.2.8 节 “没有约束”。
参数 | 描述 |
---|---|
Critical | 选择 true 来标记此扩展关键;选择 false 来标记非关键扩展名。 |
reqExplicitPolicy |
指定在需要显式策略前在路径中允许的证书总数。这是在需要可接受的策略前,可以在从属 CA 证书下串联的 CA 证书数量。
这个数字会影响在证书验证过程中使用的 CA 证书数量。链以验证的最终证书开始,并移动链。如果在最终用户证书中设置扩展,该参数无效。
|
inhibitPolicyMapping |
指定不再允许策略映射前允许的证书总数。
|
B.1.20. 策略映射器默认扩展
此默认将策略映射扩展附加到证书。扩展列表 OID 对,每个对标识两个 CA 的两个策略语句。对表示一个 CA 的对应策略等同于另一个 CA 的策略。扩展在跨交互的上下文中可能很有用。如果支持,则扩展仅包含在 CA 证书中。一个 CA 的默认策略语句通过对分配给其策略语句的 OID 相互映射
每个对由两个参数定义,即 issuerDomainPolicy 和 subjectDomainPolicy。pairing 表示发布 CA 认为与主题 CA 的 subjectDomainPolicy 等效的 issuerDomainPolicy。发布 CA 的用户可能会接受特定应用程序的 issuerDomainPolicy。策略映射告知这些用户与主题 CA 关联的策略等同于它们接受的策略。
有关此扩展的一般信息,请参考 第 B.3.12 节 “policyMappings”。
此默认值可以定义以下限制:
- 扩展约束 ; 请参阅 第 B.2.4 节 “扩展约束”。
- 无限制 ; 请参阅 第 B.2.8 节 “没有约束”。
参数 | 描述 |
---|---|
Critical | 选择 true 来标记此扩展关键;选择 false 来标记非关键扩展名。 |
IssuerDomainPolicy_n | 指定分配给发布 CA 的 policy 语句的 OID,以使用另一个 CA 的 policy 语句进行映射。例如,1.2 .3.4.5。 |
SubjectDomainPolicy_n | 指定分配给主题 CA 的策略声明的 OID,对应于发布 CA 的策略声明。例如: 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 节 “没有约束”。
参数 | 描述 |
---|---|
signingAlg | 指定用于创建此证书的默认签名算法。代理可以通过指定 signingAlgsAllowed 参数中包含的一个值来覆盖这个值。 |
signingAlgsAllowed | 指定可用于签署此证书的签名算法。该算法可以是以下任何或全部:
|
B.1.23. 主题备用名称扩展默认值
此默认为证书附加一个 Subject Alternative Name 扩展。扩展会将其他身份(如电子邮件地址、DNS 名称、IP 地址(IPv4 和 IPv6)或 URI 绑定到证书的主题。标准要求如果证书主题字段包含空序列,则 Subject Alternative 名称扩展必须包含主题的替代名称,且扩展被标记为 critical。
对于任何基于目录的身份验证方法,证书系统可以检索任意字符串和字节属性的值,并在证书请求中设置它们。这些属性可以通过在 ldapStringAttributes 和 ldapByteAttributes 字段中输入自动注册模块中定义的 ldapByteAttributes 字段来设置它们。
如果经过身份验证的用户 - 表示存储在 LDAP 数据库中的属性 - 需要是此扩展的一部分,请使用 $request 中的值。X$ 令牌。
有一个额外的属性,可将通用唯一标识符(UUID)插入到主题 alt 名称中。这个选项为版本 4 UUID 生成随机数字;模式是通过引用服务器来定义的,该服务器将在额外的 subjAltExtSource 参数中生成数字。
在示例中配置了基本 Subject Alternative Name 扩展默认。
例 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=5
Subject Alternative Name 扩展默认检查配置集属性的证书请求。如果请求包含属性,配置集会读取其值并在扩展中设置它。如果配置了基于 LDAP 的身份验证,则 Subject Alternative Name 扩展默认可以从 LDAP 目录中插入属性值。添加到证书的扩展包含所有配置的属性。
表 B.20 “主题备用名称中的值的变量” 中列出了可与 Subject Alternative Name 扩展默认一起使用的变量。
策略设置令牌 | 描述 |
---|---|
$request.auth_token.cn$ | 请求证书的用户的 LDAP 通用名称(cn )属性。 |
$request.auth_token.mail$ | 请求证书的用户的 LDAP 电子邮件(mail )属性值。 |
$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.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,FF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:255.255.255.0 , 和 FF01::43,FFFF:FFFF:FF:FF:FF:FF:FF:FFFF0000。 |
$request.profileRemoteHost$ | 用户机器的主机名或 IP 地址。主机名可以是完全限定域名和协议,如 http://server.example.com。IPv4 地址的格式必须是 n. n.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,FF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:255.255.255.0 , 和 FF01::43,FFFF:FFFF:FF:FF:FF:FF:FF:FFFF0000。 |
$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 设置为 5 以插入 RFC822Name、DNSName、URIName、OtherName, 和 RFC822Name 名称(通用名称 _0、_1、_2、_3、_4)。
此默认值可以定义以下限制:
- 扩展约束 ; 请参阅 第 B.2.4 节 “扩展约束”。
- 无限制 ; 请参阅 第 B.2.8 节 “没有约束”。
参数 | 描述 |
---|---|
Critical | 选择 true 来标记此扩展关键;选择 false 来标记非关键扩展名。 |
pattern | 指定要包含在扩展中的 request 属性值。属性值必须符合任何受支持的通用名称类型。如果服务器在请求中找到属性,它会在扩展中设置属性值,并将扩展添加到证书。如果指定了多个属性,且请求中不存在任何属性,则服务器不会向证书添加 Subject Alternative Name 扩展。permissable 值是证书请求中包含的 request 属性。例如,$request.requestor_email$。 |
类型 |
指定 request 属性的常规名称类型。
|
源 | 指定用于生成 ID 的标识源或协议。唯一支持的源是 UUID4,它会生成一个随机数字来创建 UUID。 |
组件数(NumGNs) | 指定必须包含在主题备用名称中的名称组件数量。 |
B.1.24. 主题目录属性扩展默认值
此默认将 Subject Directory 属性扩展附加到证书。Subject Directory Attributes 扩展处理证书的主题所需的目录属性值。
此默认值可以定义以下限制:
- 扩展约束 ; 请参阅 第 B.2.4 节 “扩展约束”。
- 无限制 ; 请参阅 第 B.2.8 节 “没有约束”。
参数 | 描述 |
---|---|
Critical | 选择 true 来标记此扩展关键;选择 false 来标记非关键扩展名。 |
Name | 属性名称;可以是任何 LDAP 目录属性,如 cn 或 mail 。 |
pattern | 指定要包含在扩展中的 request 属性值。属性值必须符合属性允许的值。如果服务器找到属性,它会在扩展中设置属性值,并将扩展添加到证书。如果指定了多个属性,且请求中不存在任何属性,则服务器不会向证书添加 Subject Directory Attributes 扩展。例如,$request.requestor_email$。 |
启用 | 设置该属性是否可以添加到证书中。选择 true 来启用属性。 |
B.1.25. 主题信息访问默认扩展
实施注册默认策略,在证书模板中填充 Subject Information Access 扩展。此扩展表示如何访问显示扩展的证书主题的信息和服务。
参数 | 描述 |
---|---|
Critical | 此扩展应该是非关键的。 |
subjInfoAccessNumADs | 证书中包含的信息访问部分数量。 |
subjInfoAccessADMethod_n | 访问方法的 OID。 |
subjInfoAccessADMethod_n | 访问方法的类型。
|
subjInfoAccessADLocation_n |
基于类型 subjInfoAccessADMethod_n 的位置
例如,URI Name 的 URL。
|
subjInfoAccessADEnable_n | 选择 true 来启用此扩展;选择 false 来禁用此扩展。 |
B.1.26. 主题密钥标识符默认
默认情况下,为证书附加一个 Subject Key Identifier 扩展。扩展标识包含特定公钥的证书,它标识具有相同主题名称的多个证书。
有关此扩展的一般信息,请参考 第 B.3.16 节 “subjectKeyIdentifier”。
如果启用,如果扩展尚不存在,配置集会将 Subject Key Identifier Extension 添加到注册请求中。如果请求中存在扩展,如 CRMF 请求,则默认会替换扩展。代理批准手动注册请求后,配置集接受尚未有的任何 Subject Key Identifier Extension。
这个默认值没有参数。如果使用,则证书中包含此扩展以及公钥信息。
此默认值可以定义以下限制:
- 扩展约束 ; 请参阅 第 B.2.4 节 “扩展约束”。
- 无限制 ; 请参阅 第 B.2.8 节 “没有约束”。
B.1.27. 主题名称默认
默认情况下,将服务器端可配置的主题名称附加到证书请求。静态主题名称用作证书中的主题名称。
此默认值可以定义以下限制:
- 主题名称约束;请参阅 第 B.2.11 节 “主题名称约束”。
- 唯一主题名称约束 ; 请参阅 第 B.2.13 节 “唯一主题名称约束”。
- 无限制 ; 请参阅 第 B.2.8 节 “没有约束”。
参数 | 描述 |
---|---|
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. 用户密钥默认
默认情况下,将用户提供的密钥附加到证书请求中。这是必需的默认值。密钥是注册请求的一部分。
此默认值可以定义以下限制:
- 密钥约束 ; 请参阅 第 B.2.5 节 “键约束”。
- 无限制 ; 请参阅 第 B.2.8 节 “没有约束”。
B.1.29. 用户签名算法默认
此默认实施一个注册默认配置文件,它会在证书请求中填充用户提供的签名算法。如果证书配置文件中包含,这允许用户为证书选择签名算法,受约束集约束。
不提供输入来将签名算法选择添加到注册表单中,但可以提交包含此信息的请求。
此默认值可以定义以下限制:
- 签名算法约束 ; 请参阅 第 B.2.10 节 “签名算法约束”。
- 无限制 ; 请参阅 第 B.2.8 节 “没有约束”。
B.1.30. 用户主题名称默认
默认情况下,将用户提供的主题名称附加到证书请求。如果证书配置文件中包含,它将允许用户为证书提供主题名称,受限制集的限制。此扩展会保留签发证书时在原始证书请求中指定的主题名称。
此默认值可以定义以下限制:
- 主题名称约束;请参阅 第 B.2.11 节 “主题名称约束”。
- 唯一主题名称约束 ; 请参阅 第 B.2.13 节 “唯一主题名称约束”。
- 无限制 ; 请参阅 第 B.2.8 节 “没有约束”。
B.1.31. 用户验证器默认值
默认情况下,将用户提供的有效期附加到证书请求。如果证书配置文件中包含,它将允许用户提供有效期,受约束集约束。在签发证书时,此默认配置集会在原始证书请求中保留用户定义的有效期周期。
不提供输入来向注册表单添加用户提供的有效期日期,但可以提交包含此信息的请求。
此默认值可以定义以下限制:
- 有效约束 ; 请参阅 第 B.2.14 节 “有效约束”。
- 无限制 ; 请参阅 第 B.2.8 节 “没有约束”。
B.1.32. 用户 Supplied 扩展默认
User Supplied Extension Default 类使用证书请求中定义的任何证书扩展填充证书。这要求用户提交符合某些标准或授予某些信息的证书请求,因为配置集在注册证书前可能需要特定的扩展。
WARNING
值得注意的是设置此扩展默认,因为它允许用户在证书请求中指定扩展。如果使用此默认值,红帽强烈建议您使用与扩展对应的约束,以最小化用户 Supplied Extension Default 可能的任何可能。
用户定义的扩展会根据设定的任何约束进行验证,因此可以限制扩展类型(通过扩展约束),或者为密钥和其他基本限制设置规则,如这是 CA 证书。
注意
如果在具有对应 OID (扩展约束)的配置集上设置此扩展,那么通过该配置集处理的任何证书请求 都必须 执行指定的扩展,或者请求被拒绝。
如果在勘误 RHSA 2008:0500 之前使用 User Supplie d 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 通过三种方法之一通过用户 Supplied Extension 默认处理注册:
- 如果在证书请求和默认值中指定扩展的 OID,则扩展将由约束验证,并应用到证书。
- 如果请求中给出了扩展的 OID,但没有在配置集中的 User Supplied Extension Default 中指定,则用户指定的扩展将被忽略,并且证书成功注册没有该扩展。
- 如果在具有对应 OID (扩展约束)的配置集上设置此扩展,那么通过该配置集处理的任何证书请求 都必须 执行指定的扩展,或者请求被拒绝。
包含用户定义的扩展的证书请求必须提交到配置集。但是,证书注册表单没有任何输入字段供用户添加用户提供的扩展。提交证书请求而不提供扩展失败。
例 B.2 “用于扩展密钥用法扩展的用户 Supplied Extension 默认” 使用扩展的密钥用法约束将用户扩展默认添加到配置集中。
userExtOID
参数中指定的 OID 用于扩展密钥使用情况。
例 B.2. 用于扩展密钥用法扩展的用户 Supplied Extension 默认
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 “用于扩展密钥用法扩展的用户 Supplied Extension 默认” 中,虽然用户 Supplied Extension Default 允许用户指定 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)。
第 3.2 节 “设置证书配置文件” 中描述了编辑配置集。
例 B.3. CSR 中的多个用户 Supplied 扩展
RHCS 注册配置集框架允许在同一配置文件中定义多个用户 Supplied 扩展。例如,可以指定以下内容的组合:
- 对于扩展的密钥用法扩展:
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 节 “没有约束”。
参数 | 描述 |
---|---|
range | 指定此证书的有效性周期。 |
startTime | 根据当前时间设置有效期何时开始。 |