附录 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 |
选择 |
方法_n | 指定检索已发布扩展证书的 CA 的更多信息的访问方法。这是以下值之一:
|
LocationType_n | 指定包含签发证书的 CA 的更多信息的位置的常规名称类型。这是以下类型之一:
|
位置_n | 指定获取签发证书的 CA 的更多信息的地址或位置。
|
启用_n |
指定是否启用此位置。选择 |
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 |
选择 |
IsCA |
指定证书主题是否为 CA。使用 |
PathLen | 指定路径长度,可按以下链的最大 CA 证书数(从属到)要发布的 CA 证书。路径长度会影响在证书验证过程中使用的 CA 证书数量。链从验证和移动的最终证书开始。
如果在最终用户证书中设置扩展,
允许的值是 如果字段留空,则路径长度默认为由签发者证书中 Basic Constraints 扩展中设置的路径长度决定的值。如果签发者的路径长度为无限,则从属 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 |
选择 |
numCertPolicies |
指定可以定义的策略数量。默认值为 |
enable |
选择 |
policyId | 指定策略的 OID 标识符。 |
cpsURI.enable |
扩展可以包括到签发者证书实践声明的 URI。选择 |
CPSURI.value | 这个值是 CA 发布的认证实践声明(CPS)的指针。指针采用 URI 的形式。 |
usernotice.enable |
扩展可以包括到签发者证书声明的 URI,也可以以文本形式嵌入签发者信息。选择 |
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 |
选择 |
类型_n |
指定 CRL 分发点的类型。permissible 的值包括 |
名称_n | 指定 CRL 发布点的名称,名称可以是以下格式:
|
reason_n | 指定 CRL 在分发点维护的吊销原因。提供以下常量的逗号分隔列表:
|
IssuerType_n | 指定在发布点上为 CRL 维护签名的签发者的命名类型。签发者名称可以采用以下格式:
|
IssuerName_n | 指定为 CRL 签名的 CRL 签发者的名称格式。可能的值如下:
此参数的值必须与 |
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 |
Windows 2000 可以使用包含以下两个 OID 的扩展密钥用法扩展的证书加密硬盘上的文件,称为加密的文件系统(EFS):
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 |
选择 |
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. 新的 CRL 扩展默认
此默认将 Freshest CRL 扩展附加到证书。
此默认值可以定义以下限制:
- 扩展约束;请参阅 第 B.2.4 节 “扩展约束”。
- 无限制;请参阅 第 B.2.8 节 “没有约束”。
此默认定义五个位置,以及每个位置的参数。参数在表中标有 n,以显示参数关联的位置。
参数 | 描述 |
---|---|
Critical |
选择 |
PointEnable_n |
选择 |
PointType_n |
指定发出点的类型,可以是 |
PointName_n |
|
PointIssuerName_n | 指定签名 CRL 的签发者名称。名称可以是以下格式:
name 值必须符合 |
PointType_n | 指定为 CRL 签名的 CRL 签发者的一般名称类型。可能的值如下:
此参数的值必须与 |
B.1.10. 通用扩展默认
此扩展允许使用用户确定的数据创建通用扩展。默认可确保正确填充通用扩展。
参数 | 描述 |
---|---|
Critical |
选择 |
genericExtOID | 指定 extensions OID 标识符。 |
genericExtData | 扩展中包含的二进制数据。 |
B.1.11. 禁止 Any-Policy 扩展默认值
禁止任何策略扩展可用于签发到 CA 的证书。禁止任何策略表示特殊 anyPolicy OID,值为 { 2 5 29 32 0 },不被视为其他证书策略的显式匹配。
参数 | 描述 |
---|---|
Critical |
此策略必须标记为关键策略。选择 |
SkipCerts |
此参数指定在不再允许任何策略前可能出现在路径中的额外证书数量。值 |
B.1.12. 签发者替代名称扩展默认值
此默认将 Issuer Alternative Name 扩展附加到证书。Issuer Alternative Name 扩展用于将互联网风格的身份与证书签发者关联。
此默认值可以定义以下限制:
- 扩展约束;请参阅 第 B.2.4 节 “扩展约束”。
- 无限制;请参阅 第 B.2.8 节 “没有约束”。
此默认定义五个位置,以及每个位置的参数。参数在表中标有 n,以显示参数关联的位置。
参数 | 描述 |
---|---|
Critical |
选择 |
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 |
选择 |
digitalSignature |
指定是否允许签名 SSL 客户端证书和 S/MIME 签名证书。选择 |
nonRepudiation |
指定是否用于 S/MIME 签名证书。选择 警告 使用这个位是相似的。在为任何证书设置前,请仔细考虑其使用的法律后果。 |
keyEncipherment |
指定主题中的公钥是否用于增强私钥或 secret 密钥。这是为 SSL 服务器证书和 S/MIME 加密密钥设置的。选择 |
dataEncipherment |
指定当主体的公钥用于加密用户数据而不是关键材料时,是否设置扩展。选择 |
keyAgreement |
指定在主题的公钥用于密钥协议时是否设置扩展。选择 |
keyCertsign |
指定是否使用公钥来验证其他证书的签名。此设置用于 CA 证书。选择 |
cRLSign |
指定是否为 CRL 的 CA 签名证书设置扩展。选择 |
encipherOnly |
指定如果公钥仅在执行密钥协议时加密数据时,是否设置扩展。如果设置了这个位,则还应设置 |
decipherOnly |
指定在执行密钥协议时,如果公钥仅用于解密数据,则指定是否设置扩展。如果设置了这个位,则还应设置 |
B.1.14. 名称约束扩展默认
此默认为证书附加一个 Name Constraints 扩展。CA 证书中使用扩展来指示证书链中后续证书中的主题名称或主题备用名称应位于的名称。
有关此扩展的常规信息,请参考 第 B.3.9 节 “nameConstraints”。
此默认值可以定义以下限制:
- 扩展约束;请参阅 第 B.2.4 节 “扩展约束”。
- 无限制;请参阅 第 B.2.8 节 “没有约束”。
此默认值为允许子树和排除的子树定义最多五个位置,并为每个位置设置参数。参数在表中标有 n,以显示参数关联的位置。
参数 | 描述 |
---|---|
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 证书类型扩展默认
这个扩展已过时。改为使用 Key Usage 或 Extended Key Usage 证书扩展。
此默认将 Netscape 证书类型扩展附加到证书。扩展标识证书类型,如 CA 证书、服务器 SSL 证书、客户端 SSL 证书或 S/MIME 证书。这限制了将证书的使用为预先确定的目的。
B.1.16. Netscape Comment 扩展默认
这个扩展已过时。
此默认为证书附加 Netscape 注释扩展。扩展可用于在证书中包含文本注释。在使用或查看证书时,可以解释注释的应用程序会显示它。
有关此扩展的常规信息,请参考 第 B.4.3.1.1 节 “Netscape-comment”。
此默认值可以定义以下限制:
- 扩展约束;请参阅 第 B.2.4 节 “扩展约束”。
- 无限制;请参阅 第 B.2.8 节 “没有约束”。
参数 | 描述 |
---|---|
Critical |
选择 |
CommentContent | 指定要出现在证书中的注释内容。 |
B.1.17. 没有默认扩展
在不使用默认值时,可以使用此默认值来设置限制。这个默认值没有设置,且没有设置默认值,但允许设置所有约束。
B.1.18. OCSP No Check extension default
这个默认为证书附加一个 OCSP No Check 扩展。这个扩展只在 OCSP 响应器证书中使用,指示与 OCSP 兼容的应用程序如何验证授权 OCSP 响应的证书的撤销状态。
有关此扩展的常规信息,请参考 第 B.3.10 节 “OCSPNocheck”。
此默认值可以定义以下限制:
- 扩展约束;请参阅 第 B.2.4 节 “扩展约束”。
- 无限制;请参阅 第 B.2.8 节 “没有约束”。
参数 | 描述 |
---|---|
Critical |
选择 |
B.1.19. 策略约束扩展默认
此默认为证书附加策略约束扩展。扩展,它只可用于 CA 证书,以两种方式限制路径验证:要禁止策略映射,或要求路径中的每个证书都包含可接受的策略标识符。默认可以指定 ReqExplicitPolicy
和 InhibitPolicyMapping
。PKIX 标准要求证书中存在时,扩展不得由空序列组成。必须至少有两个指定字段之一。
有关此扩展的常规信息,请参考 第 B.3.11 节 “policyConstraints”。
此默认值可以定义以下限制:
- 扩展约束;请参阅 第 B.2.4 节 “扩展约束”。
- 无限制;请参阅 第 B.2.8 节 “没有约束”。
参数 | 描述 |
---|---|
Critical |
选择 |
reqExplicitPolicy | 指定在需要显式策略前在路径中允许的证书总数。这是在需要可接受的策略前,可以在从属 CA 证书下串联的 CA 证书数量。
这个数字会影响在证书验证过程中使用的 CA 证书数量。链以验证的最终证书开始,并移动链。如果在最终用户证书中设置扩展,该参数无效。 |
inhibitPolicyMapping | 指定不再允许策略映射前允许的证书总数。
|
B.1.20. 策略映射程序扩展默认
此默认将策略映射扩展附加到证书。扩展列表 OID 对,每个对标识两个 CA 的两个策略语句。对表示一个 CA 的对应策略等同于另一个 CA 的策略。扩展在跨交互的上下文中可能很有用。如果支持,则扩展仅包含在 CA 证书中。一个 CA 的默认策略语句通过对分配给其策略语句的 OID 相互映射
每个对都由两个参数定义,即 issuerDomainPolicy
和 subjectDomainPolicy
。对表示发布 CA 认为 issuerDomainPolicy
等同于主题 CA 的 subjectDomainPolicy
。发出 CA 的用户可以接受特定应用程序的 issuerDomainPolicy
。策略映射告知这些用户与主题 CA 关联的策略等同于它们接受的策略。
有关此扩展的常规信息,请参考 第 B.3.12 节 “policyMappings”。
此默认值可以定义以下限制:
- 扩展约束;请参阅 第 B.2.4 节 “扩展约束”。
- 无限制;请参阅 第 B.2.8 节 “没有约束”。
参数 | 描述 |
---|---|
Critical |
选择 |
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. 私钥使用 Period 扩展默认
Private Key Usage Period 扩展允许证书签发者为私钥指定与证书本身不同的有效期周期。此扩展用于数字签名密钥。
参数 | 描述 |
---|---|
Critical | 此扩展应该始终不是关键的。 |
puStartTime |
此参数设置开始时间。默认值为 |
puDurationDays |
此参数设置使用周期的持续时间。默认值为 |
B.1.22. 签名算法默认
此默认在证书请求中附加了一个签名算法。此默认提供了一个代理,它带有可能算法,可用于签署证书。
此默认值可以定义以下限制:
- 签名算法约束;请参阅 第 B.2.10 节 “签名算法约束”。
- 无限制;请参阅 第 B.2.8 节 “没有约束”。
参数 | 描述 |
---|---|
signingAlg |
指定用于创建此证书的默认签名算法。代理可以通过指定 |
signingAlgsAllowed | 指定可用于签署此证书的签名算法。该算法可以是以下任何或全部:
|
B.1.23. 主题备用名称扩展默认
此默认为证书附加一个 Subject Alternative Name 扩展。扩展会将其他身份(如电子邮件地址、DNS 名称、IP 地址(IPv4 和 IPv6)或 URI 绑定到证书的主题。标准要求,如果 certificate subject 字段包含空序列,则 Subject Alternative name 扩展必须包含主题的替代名称以及扩展被标记为 critical。
对于任何基于目录的身份验证方法,证书系统可以检索任意字符串和字节属性的值,并在证书请求中设置它们。这些属性通过在自动注册模块中定义的 ldapStringAttributes
和 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
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
Copy to clipboardCopiedSubject 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。例如: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 地址。主机名可以是完全限定域名和协议,如 |
$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
参数控制要将列出的属性数量添加到证书中。这个参数必须添加到自定义配置集中,可能需要修改默认配置集,以便根据需要包含任意数量的属性。在下表中,subjAltNameNumGNs
设置为 5
以插入 RFC822Name
,DNSName
,URIName
, otherName , 和 RFC822
名称(通用名称 _0、_1、_2、_3 和 _4)。
Name
此默认值可以定义以下限制:
- 扩展约束;请参阅 第 B.2.4 节 “扩展约束”。
- 无限制;请参阅 第 B.2.8 节 “没有约束”。
参数 | 描述 |
---|---|
Critical |
选择 |
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 |
选择 |
Name |
属性名称;这可以是任何 LDAP 目录属性,如 |
pattern | 指定要包含在扩展中的 request 属性值。属性值必须符合属性允许的值。如果服务器找到属性,它会在扩展中设置属性值,并将扩展添加到证书。如果指定了多个属性,且请求中不存在任何属性,则服务器不会向证书添加 Subject Directory Attributes 扩展。例如,$request.requestor_email$。 |
启用 |
设置该属性是否可以添加到证书中。选择 |
B.1.25. 主题信息访问扩展默认
实施注册默认策略,在证书模板中填充 Subject Information Access 扩展。此扩展表示如何访问显示扩展的证书主题的信息和服务。
参数 | 描述 |
---|---|
Critical | 此扩展应该是非关键的。 |
subjInfoAccessNumADs | 证书中包含的信息访问部分数量。 |
subjInfoAccessADMethod_n | 访问方法的 OID。 |
subjInfoAccessADMethod_n | 访问方法的类型。
|
subjInfoAccessADLocation_n | 基于类型 subjInfoAccessADMethod_n 的位置 例如,URI Name 的 URL。 |
subjInfoAccessADEnable_n |
选择 |
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 节 “唯一的 Subject Name 约束”。
- 无限制;请参阅 第 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$
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$
Copy to clipboardCopiedB.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 节 “唯一的 Subject Name 约束”。
- 无限制;请参阅 第 B.2.8 节 “没有约束”。
B.1.31. 用户有效期默认
默认情况下,将用户提供的有效期附加到证书请求。如果证书配置文件中包含,它将允许用户提供有效期,受约束集约束。在签发证书时,此默认配置集会在原始证书请求中保留用户定义的有效期周期。
不提供输入来向注册表单添加用户提供的有效期日期,但可以提交包含此信息的请求。
此默认值可以定义以下限制:
- 有效期约束;请参阅 第 B.2.14 节 “有效期约束”。
- 无限制;请参阅 第 B.2.8 节 “没有约束”。
B.1.32. 用户 Supplied 扩展默认
User Supplied 扩展默认类使用用户在证书请求中定义的任何证书扩展填充证书。这要求用户提交符合某些标准或授予某些信息的证书请求,因为配置集在注册证书前可能需要特定的扩展。
值得注意的是设置此扩展默认,因为它允许用户在证书请求中指定扩展。如果使用这个默认值,红帽强烈建议您使用与扩展对应的约束,以最大程度降低用户 Supplied 扩展 default 可能的滥用。
用户定义的扩展会根据设定的任何约束进行验证,因此可以限制扩展类型(通过扩展约束),或者为密钥和其他基本限制设置规则,如这是 CA 证书。
如果在具有对应 OID (扩展约束)的配置集上设置此扩展,那么通过该配置集处理的任何证书请求 都必须 执行指定的扩展,或者请求被拒绝。
如果在勘误表 RHSA 2008:0500 之前,默认启用 User Supplied 扩展默认证书配置文件,则必须编辑此配置文件来支持用户提供证书请求中的扩展。应用 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
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
Copy to clipboardCopiedCA 通过以下三种方式之一处理使用用户 Supplied 扩展功能的注册:
- 如果在证书请求和默认值中指定扩展的 OID,则扩展将由约束验证,并应用到证书。
- 如果在请求中给出了扩展 OID,但没有在配置集中的 User Supplied 扩展中指定,则忽略用户指定的扩展,并在该扩展的情况下成功注册证书。
- 如果在具有对应 OID (扩展约束)的配置集上设置此扩展,那么通过该配置集处理的任何证书请求 都必须 执行指定的扩展,或者请求被拒绝。
包含用户定义的扩展的证书请求必须提交到配置集。但是,证书注册表单没有任何输入字段供用户添加用户提供的扩展。提交证书请求而不提供扩展失败。
以下示例将 User Supplied 扩展默认添加到带有扩展 Key Usage Constraint 的配置集中。userExtOID
参数中指定的 OID 用于扩展 Key Usage 扩展。
例 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
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
Copy to clipboardCopied在本例中,尽管用户 Supplied 扩展默认允许用户指定扩展密钥使用扩展(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 中提供了多个用户扩展
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
Copy to clipboardCopiedpolicyset.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
Copy to clipboardCopiedpolicyset.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 的示例,请参阅 第 5.2.1.1.2 节 “使用 certutil
创建带有用户定义的扩展的 CSR”。
B.1.32.1. 有效期默认值
默认情况下,将服务器端可配置的有效期附加到证书请求中。
此默认值可以定义以下限制:
- 有效期约束;请参阅 第 B.2.14 节 “有效期约束”。
- 无限制;请参阅 第 B.2.8 节 “没有约束”。
参数 | 描述 |
---|---|
range | 指定此证书的有效性周期。 |
startTime | 根据当前时间设置有效期何时开始。 |