B.2. 约束参考


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

B.2.1. 基本约束扩展约束

Basic Constraints 扩展约束检查证书请求中的基本约束是否满足此约束中设置的条件。

Expand
表 B.25. 基本约束扩展约束配置参数
参数描述

basicConstraintsCritical

指定扩展是否可以标记为 critical 还是非关键。选择 true 以标记此扩展关键;选择 false 以防止此扩展标记为 critical。选择一个连字符,代表没有关键首选项。

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 约束

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

B.2.3. 扩展的密钥用法扩展约束

扩展的密钥用法扩展约束检查证书上的扩展密钥用法扩展是否满足此约束中设置的条件。

Expand
表 B.26. 扩展的密钥用法扩展约束配置参数
参数描述

exKeyUsageCritical

当设置为 true 时,扩展可以被标记为 critical。当设置为 false 时,扩展可以被标记为非关键。

exKeyUsageOIDs

指定用于标识键使用目的的允许的 OID。可以在以逗号分隔的列表中添加多个 OID。

B.2.4. 扩展约束

此约束实现了常规扩展约束。它检查是否存在扩展。

Expand
表 B.27. 扩展约束
参数描述

extCritical

指定扩展是否可以标记为 critical 还是非关键。选择 true 以标记扩展关键;选择 false 以将其标记为非关键。选择 - 不优先选择。

extOID

必须存在于证书中的扩展 OID 才能传递约束。

B.2.5. 键约束

此约束检查 RSA 密钥的密钥大小,以及 EC 密钥的 elliptic curve 的名称。与 RSA 密钥一起使用时, KeyParameters 参数包含以逗号分隔的法律密钥大小列表,而 EC 键参数包含以逗号分隔的可用 ECC curves 列表。

Expand
表 B.28. 关键约束配置参数
参数描述

keyType

提供一个密钥类型;这默认设为 -,使用 RSA 密钥系统。选择是 rsa 和 ec。如果指定了密钥类型且未被系统标识,则约束将被拒绝。

KeyParameters

定义特定的密钥参数。为键设置的参数有所不同,具体取决于 keyType 参数的值(根据键类型)。

  • 使用 RSA 密钥时,KeyParameters 参数包含以逗号分隔的法律密钥大小列表。
  • 使用 ECC 键时,KeyParameters 参数包含以逗号分隔的可用 ECC curves 列表。

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

Key Usage 扩展约束检查证书请求中的密钥使用量约束是否满足此约束中设置的条件。

Expand
表 B.29. 关键用法扩展约束配置参数
参数描述

keyUsageCritical

选择 true 以标记此扩展关键;选择 false 以将其标记为非关键。选择 - 代表没有首选项。

keyUsageDigitalSignature

指定是否签署 SSL 客户端证书和 S/MIME 签名证书。选择 true 以将其标记为 set;选择 false 以保留此设置;选择一个连字符 -,以指示没有为此参数放置任何限制。

kleyUsageNonRepudiation

指定是否设置 S/MIME 签名证书。选择 true 以将其标记为 set;选择 false 以保留此设置;选择一个连字符 -,以指示没有为此参数放置任何限制。

警告

使用这个位是相似的。在为任何证书设置前,请仔细考虑其使用的法律后果。

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 证书类型扩展约束

警告

这个约束已过时。使用 Key Usage 扩展或扩展的密钥用法扩展,而不是使用 Netscape 证书类型扩展。

Netscape Certificate Type 扩展约束检查证书请求中的 Netscape Certificate Type 扩展是否满足此约束中设置的条件。

B.2.8. 没有约束

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

B.2.9. 续订 Grace Period 约束

当用户可以根据其过期日期续订证书时,Renewal Grace Period Constraint 会设置规则。例如,用户无法在证书过期前或其过期时间过期前更新证书。

使用此约束时要记住的一个事项是,此约束是在 原始注册配置集 上设置的,而不是续订配置集。续订宽限期的规则是原始证书的一部分,并针对后续续订执行并应用。

此约束仅适用于 No Default 扩展。

Expand
表 B.30. 续订 Grace Period 约束配置参数
参数描述

renewal.graceAfter

在证书过期 设置可以提交续订的周期(以天为单位)。如果证书已过期了这一时间,则续订请求将被拒绝。如果没有给出值,则没有限制。

renewal.graceBefore

设置在可以提交以进行续订的证书过期前的天数(以天为单位)。如果证书不是接近其过期日期,则拒绝续订请求。如果没有给出值,则没有限制。

B.2.10. 签名算法约束

Signing Algorithm 约束检查证书请求中的签名算法是否满足此约束中设置的条件。

Expand
表 B.31. 签名算法约束配置参数
参数描述

signingAlgsAllowed

设置可以指定签署证书的签名算法。该算法可以是以下任何或全部:

  • MD2withRSA
  • MD5withRSA
  • SHA256withRSA
  • SHA512withRSA
  • SHA256withEC
  • SHA384withEC
  • SHA512withEC

B.2.11. 主题名称约束

Subject Name 约束检查证书请求中的主题名称是否满足条件。

Expand
表 B.32. 主题名称约束配置参数
参数描述

pattern

指定用于构建主题 DN 的正则表达式或其他字符串。

主题名称和正则表达式

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

例如,如果主题名称约束的模式被设置为 uid=.*,则证书配置文件框架会检查证书请求中的主题名称是否与模式匹配。uid=user, o=Example, c=US 等主题名称满足模式 uid=.以前。主题名称 cn=user, o=example,c=US 不符合模式。uid=.* 表示主题名称必须以 uid 属性开头; period-asterisk (198.51.100.0/24)通配符允许任何类型和字符数跟随 uid

可能需要内部模式,如 .ou=Engineering。 它需要 ou=Engineering 属性,其前后带有任何类型的字符串。这与 cn=jdoe,ou=internal,ou=west coast,ou=engineering,o="Example Corp",st=NC 以及 uid=bjensen,ou=engineering,dc=example,dc=com 匹配。

最后,也可以通过在选项之间设置 pipe 符号(|)来允许是一个字符串或另一个字符串的请求。例如,要允许包含 ou=engineering,ou=peopleou=engineering,o="Example Corp" 的主题名称,模式为 .ou=engineering,ou=people. | .ou=engineering,o="Example Corp "。

注意

对于构建使用特殊字符(如句点(.))的模式,请使用反斜杠(\)转义字符。例如,要搜索字符串 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
Copy to Clipboard Toggle word wrap

B.2.12. 唯一的键约束

此约束检查公钥是否是唯一的。

Expand
表 B.33. 唯一的 Key 约束参数
参数描述

allowSameKeyRenewal

请求被视为续订,如果此参数设为 true,如果公钥不是唯一的,并且 主题 DN 与现有证书匹配,则接受请求。但是,如果公钥是重复的,且与现有 Subject DN 不匹配,则请求将被拒绝。

当 参数设置为 false 时,重复的公钥请求将被拒绝。

B.2.13. 唯一的 Subject Name 约束

unique Subject Name 约束限制服务器使用相同的主题名称发布多个证书。提交证书请求时,服务器会自动针对其他发布的证书别名检查 nickname。此约束可以通过终端实体页面应用到证书注册和续订。

证书不能具有相同的主题名称,除非一个证书已过期或撤销(而不在冻结时)。因此,活跃证书无法共享主题名称,但例外:如果证书具有不同的密钥使用位,则它们可以共享相同的主题名称,因为它们具有不同的用途。

Expand
表 B.34. 唯一的 Subject Name 约束配置参数
参数描述

enableKeyUsageExtensionChecking

可选设置,允许证书具有与密钥使用设置相同的主题名称。这是 truefalse。默认值为 true,它允许重复的主题名称。

B.2.14. 有效期约束

Validity 约束检查证书请求中的有效期是否满足标准。

提供的参数必须是可配置的值。例如,一个提供已传递的时间的 notBefore 参数不会被接受,以及一个 notAfter 参数,它提供的时间比 notBefore 时间不会被接受。

Expand
表 B.35. 有效期约束配置参数
参数描述

range

有效周期的范围。这是一个整数,用于设置天数。notBefore 时间和 notAfter 时间之间的差别(以天为单位)必须小于范围值,否则这个约束将被拒绝。

notBeforeCheck

验证范围不在宽限期内。当 NotBeforeCheck 布尔值参数设置为 true 时,系统会检查 notBefore 时间不超过当前时间以及 notBeforeGracePeriod 值。如果 notBeforeTime 没有在当前时间和 notBeforeGracePeriod 值之间,则这个约束将被拒绝。

notBeforeGracePeriod

notBefore 时间后的宽限期(以秒为单位)。如果 notBeforeTime 没有在当前时间和 notBeforeGracePeriod 值之间,则这个约束将被拒绝。只有在 notBeforeCheck 参数被设置为 true 时才会检查这个约束。

notAfterCheck

验证给定时间是否在过期期后没有。当 notAfterCheck 布尔值参数设置为 true 时,系统会检查 notAfter 时间不超过当前时间。如果当前时间超过 notAfter 时间,这个约束将被拒绝。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat