B.2. 约束参考


约束用于定义证书的允许内容以及与该内容关联的值。本节列出了带有每个完整定义的预定义约束。

B.2.1. 基本约束约束

Basic Constraints 扩展约束检查证书请求中的基本约束是否满足此约束中设置的条件。
表 B.25. 基本约束约束配置参数
参数 描述
basicConstraintsCritical 指定扩展是否可以标记为 critical 还是非关键。选择 true 来标记这个扩展关键;选择 false 以防止此扩展标记为关键。选择一个连字符 -,代表没有严重首选项。
basicConstraintsIsCA 指定证书主题是否为 CA。选择 true 来为此参数要求值为 true (是 CA;为此参数选择 false 以禁止为 true 值;选择连字符 - 来表示没有为此参数放置任何限制。
basicConstraintsMinPathLen
指定允许的最少路径长度,其最大 CA 证书可以串联到以下的 CA 证书数(从属到)被签发的 CA 证书。路径长度会影响证书验证过程中使用的 CA 证书数量。链从验证和移动的最终证书开始。
如果在最终用户证书中设置扩展,则此参数无效。
允许的值为 0n。该值必须小于 CA 签名证书的基本限制扩展中指定的路径长度。
0 指定在发布的子 CA 证书下不允许从属 CA 证书;在路径中只有最终用户证书可能会遵循。
N 必须是大于零的整数。这是使用下级 CA 证书下允许的下级 CA 证书的最小数量。
basicConstraintsMaxPathLen
指定最大允许的路径长度、可发布的 CA 证书的最大数量(从属到)被签发的 CA 证书。路径长度会影响证书验证过程中使用的 CA 证书数量。链从验证和移动的最终证书开始。
如果在最终用户证书中设置扩展,则此参数无效。
允许的值为 0n。该值必须大于 CA 签名证书的基本限制扩展中指定的路径长度。
0 指定在发布的子 CA 证书下不允许从属 CA 证书;在路径中只有最终用户证书可能会遵循。
N 必须是大于零的整数。这是使用下级 CA 证书下允许的最大从属 CA 证书数。
如果该字段为空,则路径长度默认为由签发者证书中基本限制扩展设置的路径长度决定的值。如果签发者的路径长度没有限制,则从属 CA 证书中的路径长度也没有限制。如果签发者的路径长度是一个大于零的整数,则从属 CA 证书中的路径长度被设置为小于签发者的路径长度的值;例如,如果签发者的路径长度为 4,则从属 CA 证书中的路径长度被设置为 3。

B.2.2. CA Validity Constraint

CA Validity 约束检查证书模板中的有效性周期是否在 CA 的有效周期内。如果证书的有效期不在 CA 证书的有效期外,则约束将被拒绝。

B.2.3. 扩展键使用约束

扩展的密钥用法扩展约束检查证书上的扩展密钥用法扩展是否满足此约束中设置的条件。
表 B.26. 扩展键用法扩展约束配置参数
参数 描述
exKeyUsageCritical 当设置为 true 时,扩展可以标记为关键。当设置为 false 时,扩展可以标记为非关键。
exKeyUsageOIDs 指定用于标识键使用目的的允许的 OID。可以在以逗号分隔的列表中添加多个 OID。

B.2.4. 扩展约束

此约束实现了常规扩展约束。它检查是否存在扩展。
表 B.27. 扩展约束
参数 描述
extCritical 指定扩展是否可以标记为 critical 还是非关键。选择 true 来标记扩展关键;选择 false 来将其标记为非关键。select - 不强制首选项。
extOID 必须存在于证书中的扩展 OID 才能传递约束。

B.2.5. 键约束

此约束检查 RSA 密钥的密钥大小,以及 EC 密钥的 elliptic curve 的名称。与 RSA 密钥一起使用时,KeyParameters 参数包含以逗号分隔的法律密钥大小列表,而 EC Keys the KeyParameters 参数包含以逗号分隔的可用 ECC curves 列表。
表 B.28. 关键约束配置参数
参数 描述
keyType 提供一个密钥类型;默认情况下,它被设置为 -,并使用 RSA 密钥系统。选择是 rsa 和 ec。如果指定了密钥类型且未被系统标识,则约束将被拒绝。
KeyParameters 定义特定的密钥参数。为键设置的参数不同,具体取决于 keyType 参数的值(根据键类型而定)。
  • 使用 RSA 密钥时,KeyParameters 参数包含以逗号分隔的法律密钥大小列表。
  • 使用 ECC 键时,KeyParameters 参数包含以逗号分隔的可用 ECC curves 列表。

B.2.6. 关键使用扩展约束

Key Usage 扩展约束检查证书请求中的密钥使用量约束是否满足此约束中设置的条件。
表 B.29. 关键使用扩展约束配置参数
参数 描述
keyUsageCritical 选择 true 来标记此扩展关键;选择 false 来将其标记为非关键。select - 代表无首选。
keyUsageDigitalSignature 指定是否签署 SSL 客户端证书和 S/MIME 签名证书。选择 true 来将其标记为 set;选择 false 以保持此设置;选择连字符 - 来指示没有为此参数放置任何限制。
kleyUsageNonRepudiation 指定是否设置 S/MIME 签名证书。选择 true 来将其标记为 set;选择 false 以保持此设置;选择连字符 - 来指示没有为此参数放置任何限制。
WARNING
使用这个位是相似的。在为任何证书设置前,请仔细考虑其使用的法律后果。
keyEncipherment 指定是否为 SSL 服务器证书和 S/MIME 加密密钥设置扩展。选择 true 来将其标记为 set;选择 false 以保持此设置;选择连字符 - 来指示没有为此参数放置任何限制。
keyUsageDataEncipherment 指定在使用主题的公钥加密用户数据而不是密钥材料时,是否设置扩展。选择 true 来将其标记为 set;选择 false 以保持此设置;选择连字符 - 来指示没有为此参数放置任何限制。
keyUsageKeyAgreement 指定是否在主题的公钥用于密钥协议时设置扩展。选择 true 来将其标记为 set;选择 false 以保持此设置;选择连字符 - 来指示没有为此参数放置任何限制。
keyUsageCertsign 指定扩展是否适用于所有 CA 签名证书。选择 true 来将其标记为 set;选择 false 以保持此设置;选择连字符 - 来指示没有为此参数放置任何限制。
keyUsageCRLSign 指定是否为用于签署 CRL 的 CA 签名证书设置扩展。选择 true 来将其标记为 set;选择 false 以保持此设置;选择连字符 - 来指示没有为此参数放置任何限制。
keyUsageEncipherOnly 指定是否在将公钥用于加密数据时设置扩展。如果设置了此位,则还应设置 keyUsageKeyAgreement。选择 true 来将其标记为 set;选择 false 以保持此设置;选择连字符 - 来指示没有为此参数放置任何限制。
keyUsageDecipherOnly 指定是否在将公钥用于解码数据时设置扩展。如果设置了此位,则还应设置 keyUsageKeyAgreement。选择 true 来将其标记为 set;选择 false 以保持此设置;选择连字符 - 来指示没有为此参数放置任何限制。

B.2.7. Netscape 证书类型扩展约束

WARNING
这个约束已过时。使用 Key Usage 扩展或扩展的密钥用法扩展,而不是使用 Netscape 证书类型扩展。
Netscape Certificate Type 扩展约束检查证书请求中的 Netscape Certificate Type 扩展是否满足此约束中设置的条件。

B.2.8. 没有约束

此约束没有实施约束。当与默认值一起选择时,在此默认值上没有限制。

B.2.9. 续订周期限制

当用户可以根据其过期日期续订证书时,Renewal Grace Period Constraint 会设置规则。例如,用户无法在证书过期前或其过期时间过期前更新证书。
使用此约束时要记住的一个事项是,此约束是在 原始注册配置集 上设置的,而不是续订配置集。续订宽限期的规则是原始证书的一部分,并针对后续续订执行并应用。
此约束仅适用于 No Default 扩展。
表 B.30. 续订周期约束配置参数
参数 描述
renewal.graceAfter 在证书过期 设置可以提交续订的周期(以天为单位)。如果证书已过期了这一时间,则续订请求将被拒绝。如果没有给出值,则没有限制。
renewal.graceBefore 设置在可以提交以进行续订的证书过期前的天数(以天为单位)。如果证书不是接近其过期日期,则拒绝续订请求。如果没有给出值,则没有限制。

B.2.10. 签名算法约束

Signing Algorithm 约束检查证书请求中的签名算法是否满足此约束中设置的条件。
表 B.31. 签名算法约束配置参数
参数 描述
signingAlgsAllowed 设置可以指定签署证书的签名算法。该算法可以是以下任何或全部:
  • MD2withRSA
  • MD5withRSA
  • SHA256withRSA
  • SHA512withRSA
  • SHA256withEC
  • SHA384withEC
  • SHA512withEC

B.2.11. 主题名称约束

Subject Name 约束检查证书请求中的主题名称是否满足条件。
表 B.32. 主题名称约束配置参数
参数 描述
pattern 指定用于构建主题 DN 的正则表达式或其他字符串。

主题名称和正则表达式

Subject Name Constraint 的正则表达式与 Java 工具匹配,以匹配正则表达式。这些正则表达式的格式列在 中 https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html。这允许通配符(如星号)搜索任意数量的字符和句点(.)来搜索任何类型的字符。

例如,如果主题名称约束的模式设置为 uid=rhcs,则证书配置文件框架将检查证书请求中的主题名称是否与模式匹配。如 uid=user, o=Example, c=US )的主题名称可以满足模式 uid= the。主题名称 cn=user, o=example,c=US 不满足模式。uid= 114 表示主题名称必须以 uid 属性开头;句点分隔(IANA)通配符允许遵循 uid 的任何类型和数字。
可以要求内部模式,如 Evolution ou=Engineering,这需要在之前和之后带有任何类型的字符串的 ou=Engineering 属性。这与 cn=jdoe,ou=internal,ou=west coast,ou=engineering,o="Example Corp",st=NCuid=bjensen,ou=engineering,dc=example,dc=com 匹配。
最后,也可以通过在选项之间设置管道符号(|)来允许是一个字符串或另一个字符串的请求。例如,要允许包含 ou=engineering ,ou=body 或 ou=engineering, o="Example Corp" 的主题名称,其模式为 114 ou=engineering,ou=body \ | Evolutionou=engineering,o="Example Corp"
注意
对于使用特殊字符(如句点)的模式,请使用 back 斜杠(\)转义字符例如,若要搜索字符串 o="Example Inc.",请将模式设置为 o="Example Inc\."

证书请求中的主题名称和 UID 或 CN

用于构建主题 DN 的模式也可以基于请求证书的人员的 CN 或 UID。Subject Name Constraint 设置 CN (或 UID)的 patter 来识别证书请求的 DN,然后该 CN 上的 Subject Name Default 构建使用预定义的目录树创建证书的主题 DN。

例如,使用证书请求的 CN:
policyset.serverCertSet.1.constraint.class_id=subjectNameConstraintImpl
policyset.serverCertSet.1.constraint.name=Subject Name Constraint
policyset.serverCertSet.1.constraint.params.pattern=CN=[^,]+,.+
policyset.serverCertSet.1.constraint.params.accept=true
policyset.serverCertSet.1.default.class_id=subjectNameDefaultImpl
policyset.serverCertSet.1.default.name=Subject Name Default
policyset.serverCertSet.1.default.params.name=CN=$request.req_subject_name.cn$,DC=example, DC=com

B.2.12. 唯一键约束

此约束检查公钥是否是唯一的。
表 B.33. 唯一的键约束参数
参数 描述
allowSameKeyRenewal
请求被视为续订,如果此参数设为 true (如果公钥不唯一),则接受它,如果主题 DN 与现有证书匹配。但是,如果公钥是重复的,且与现有 Subject DN 不匹配,则请求将被拒绝。
当参数设为 false 时,重复的公钥请求将被拒绝。

B.2.13. 唯一主题名称约束

unique Subject Name 约束限制服务器使用相同的主题名称发布多个证书。提交证书请求时,服务器会自动针对其他发布的证书别名检查 nickname。此约束可以通过终端实体页面应用到证书注册和续订。
证书不能具有相同的主题名称,除非一个证书已过期或撤销(而不在冻结时)。因此,活跃证书无法共享主题名称,但例外:如果证书具有不同的密钥使用位,则它们可以共享相同的主题名称,因为它们具有不同的用途。
表 B.34. 唯一主题名称约束配置参数
参数 描述
enableKeyUsageExtensionChecking 可选设置,允许证书具有与密钥使用设置相同的主题名称。这是 truefalse。默认值为 true,它允许重复主题名称。

B.2.14. 有效约束

Validity 约束检查证书请求中的有效期是否满足标准。
提供的参数必须是可配置的值。例如,提供尚未通过的时间的 notBefore 参数不会被接受,且提供时间早于 notBefore 时间的 notAfter 参数将不接受。
表 B.35. 有效约束配置参数
参数 描述
range 有效周期的范围。这是一个整数,用于设置天数。notBefore 时间和 notAfter 时间之间的差别(以天为单位)必须小于范围值,否则此约束将被拒绝。
notBeforeCheck 验证范围不在宽限期内。当 NotBeforeCheck 布尔值参数设为 true 时,系统将检查 notBefore 时间不会大于当前时间,再加上 notBeforeGracePeriod 值。如果 notBeforeTime 不在当前时间和 notBeforeGracePeriod 值之间,这个约束将被拒绝。
notBeforeGracePeriod 未过期时间后宽限期(以秒为单位)。如果 notBeforeTime 不在当前时间和 notBeforeGracePeriod 值之间,这个约束将被拒绝。只有在 notBeforeCheck 参数设置为 true 时,才会检查此约束。
notAfterCheck 验证给定时间是否在过期期后没有。当 notAfterCheck 布尔值参数设为 true 时,系统将检查 notAfter 时间不会超过当前时间。如果当前时间超过 notAfter 时间,这个约束将被拒绝。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.