B.2. 约束参考
限制用于定义证书的允许内容以及与该内容关联的值。本节列出了预定义的约束,并包含每个的完整定义。
B.2.1. 基本约束扩展约束 复制链接链接已复制到粘贴板!
Basic Constraints 扩展约束会检查证书请求中的基本约束是否满足这个约束中设置的条件。
参数 | 描述 |
---|---|
basicConstraintsCritical |
指定扩展是否可以标记为 critical 或 noncritical。选择 |
basicConstraintsIsCA |
指定证书主题是否为 CA。对于此参数,选择 |
basicConstraintsMinPathLen | 指定发布从属 CA 证书的最小允许路径长度、可链接的最大 CA 证书数(从属 CA 证书)。路径长度会影响证书验证过程中使用的 CA 证书数量。链从验证和移动的最终证书开始。 如果在最终用户证书中设置扩展,则此参数无效。
允许的值是
n 必须是大于零的整数。这是在使用的下级 CA 证书下允许的最少的子 CA 证书数量。 |
basicConstraintsMaxPathLen | 指定发布从属 CA 证书的最大允许路径长度、可链接的最大 CA 证书数(从属 CA 证书)。路径长度会影响证书验证过程中使用的 CA 证书数量。链从验证和移动的最终证书开始。 如果在最终用户证书中设置扩展,则此参数无效。
允许的值是
n 必须是大于零的整数。这是在使用的从属 CA 证书下面允许的最大从属 CA 证书数。 如果字段为空,则路径长度默认为由签发者证书中基本约束扩展上设置的路径长度的值。如果签发者的路径长度为无限,则从属 CA 证书中的路径长度也没有限制。如果签发者的路径长度大于零,则从属 CA 证书中的路径长度被设置为小于签发者路径长度的值;例如,如果签发者的路径长度为 4,则下级 CA 证书中的路径长度被设置为 3。 |
B.2.2. CA Validity 约束 复制链接链接已复制到粘贴板!
CA Validity 约束检查证书模板中的有效期周期是否在 CA 的有效周期内。如果证书的有效期超过 CA 证书的有效性周期,则约束将被拒绝。
B.2.3. 扩展的密钥用法扩展约束 复制链接链接已复制到粘贴板!
Extended Key Usage 扩展约束检查证书上的扩展 Key Usage 扩展是否满足这个约束中设置的条件。
参数 | 描述 |
---|---|
exKeyUsageCritical |
当设置为 |
exKeyUsageOIDs | 指定标识键使用目的的允许 OID。可以在逗号分隔列表中添加多个 OID。 |
B.2.4. 扩展约束 复制链接链接已复制到粘贴板!
这个约束实现了常规扩展约束。它将检查是否存在扩展。
参数 | 描述 |
---|---|
extCritical |
指定扩展是否可以标记为 critical 或 noncritical。选择 |
extOID | 证书中必须存在的扩展 OID 才能传递约束。 |
B.2.5. 键约束 复制链接链接已复制到粘贴板!
此约束检查 RSA 密钥的密钥大小,以及 EC 密钥的 elliptic curve 的名称。与 RSA 密钥一起使用时,
参数包含以逗号分隔的法律密钥大小列表,而 EC 键参数包含以逗号分隔的可用 ECC curves 列表。
KeyParameters
参数 | 描述 |
---|---|
keyType |
提供一个密钥类型;这默认设为 |
KeyParameters |
定义特定的密钥参数。为键设置的参数有所不同,具体取决于
* 使用 RSA 密钥, |
B.2.6. 关键用法扩展约束 复制链接链接已复制到粘贴板!
Key Usage 扩展约束检查证书请求中的键使用约束是否满足这个约束中设置的条件。
参数 | 描述 |
---|---|
keyUsageCritical |
选择 |
keyUsageDigitalSignature |
指定是否签署 SSL 客户端证书和 S/MIME 签名证书。选择 |
kleyUsageNonRepudiation |
指定是否设置 S/MIME 签名证书。选择 .WARNING [WARNING] ==== 使用这个位是 controversial。在为任何证书设置使用前,请仔细考虑其使用的法律后果。===== |
keyEncipherment |
指定是否为 SSL 服务器证书和 S/MIME 加密证书设置扩展。选择 |
keyUsageDataEncipherment |
指定在主题的公钥用于加密用户数据而不是关键材料时设置扩展。选择 |
keyUsageKeyAgreement |
指定在主题的公钥用于密钥协议时是否设置扩展。选择 |
keyUsageCertsign |
指定扩展是否适用于所有 CA 签名证书。选择 |
keyUsageCRLSign |
指定是否为用来为 CRL 签名的 CA 签名证书设置扩展。选择 |
keyUsageEncipherOnly |
如果公钥仅用于加密数据,则指定是否设置扩展。如果设置了此位,则还应设置 |
keyUsageDecipherOnly |
如果公钥仅用于解码数据,则指定是否设置扩展。如果设置了此位,则还应设置 |
B.2.7. Netscape 证书类型扩展约束 复制链接链接已复制到粘贴板!
这个约束已过时。使用 Key Usage 扩展或扩展 Key Usage 扩展扩展约束,而不是使用 Netscape 证书类型扩展。
Netscape 证书类型扩展约束检查证书请求中 Netscape 证书类型扩展是否满足此约束中设置的条件。
B.2.8. 没有约束 复制链接链接已复制到粘贴板!
这个约束没有实现任何约束。当选择与默认值时,该默认不会有限制。
B.2.9. 续订 Grace Period 约束 复制链接链接已复制到粘贴板!
当用户可以根据其过期日期续订证书时,续订 Grace Period Constraint 设置规则。例如,在证书过期前,用户无法续订证书,或者其超过过期日期后的某个时间。
使用此约束时要记住的一个重要事项是,此约束 在原始的注册配置集 上设置,而不是续订配置文件。续订宽限期的规则是原始证书的一部分,并负责后续续订。
此约束仅适用于 No Default 扩展。
参数 | 描述 |
---|---|
renewal.graceAfter | 设置证书过期 后 的期限(以天为单位)进行提交以进行续订。如果证书已到期,则续订请求将被拒绝。如果未指定值,则没有限制。 |
renewal.graceBefore | 设置证书过期 前 的期限(以天为单位)进行续订。如果证书没有接近其过期日期,则续订请求将被拒绝。如果未指定值,则没有限制。 |
B.2.10. 签名算法约束 复制链接链接已复制到粘贴板!
Signing Algorithm 约束检查证书请求中的签名算法是否满足这个约束中设置的条件。
参数 | 描述 |
---|---|
signingAlgsAllowed | 设置可指定为证书签名的签名算法。算法可以是以下任意或全部:
|
B.2.11. 主题名称约束 复制链接链接已复制到粘贴板!
Subject Name 约束检查证书请求中的主题名称是否满足条件。
参数 | 描述 |
---|---|
pattern | 指定要构建主题 DN 的正则表达式或其他字符串。 |
主题名称和正则表达式
Subject Name Constraint 的正则表达式与用于匹配正则表达式的 Java 工具匹配。这些正则表达式的格式列在 https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/regex/Pattern 中。这允许星号(\*)等通配符搜索任意字符和句点(.
)搜索任意类型字符。
例如,如果主题名称约束的模式被设置为 uid=。
,证书配置集框架会检查证书请求中的主题名称是否与模式匹配。uid=user, o=Example, c=US
等主题名称满足模式 uid=.
。主题名称 cn=user, o=example,c=US
不符合模式。uid=.
* 表示主题名称必须以 uid
属性开头; period-asterisk (.
*)通配符允许任何类型和字符数才能遵循 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=people
或 ou=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)的模式设置为在证书请求的 DN 中识别,然后 CN 上的 Subject Name Default 构建在该 CN 上使用预定义的目录树创建证书的主题 DN。
例如,使用证书请求的 CN:
B.2.12. 唯一的键约束 复制链接链接已复制到粘贴板!
此约束将检查公钥是否是唯一的。
参数 | 描述 |
---|---|
allowSameKeyRenewal |
请求被视为续订,如果此参数设为
当 参数设置为 |
B.2.13. 唯一的 Subject Name 约束 复制链接链接已复制到粘贴板!
Unique Subject Name 约束限制服务器使用相同主题名称发布多个证书。提交证书请求时,服务器会根据其他发布的证书别名自动检查 nickname。此约束可通过终端实体页面应用到证书注册和续订。
除非一个证书已过期或撤销(没有保存),否则证书不能具有相同的主题名称。因此,活跃的证书无法共享主题名称,一个例外:如果证书具有不同的密钥使用位,则可以共享相同的主题名称,因为它们有不同的用途。
参数 | 描述 |
---|---|
enableKeyUsageExtensionChecking |
可选设置,允许证书具有与密钥使用设置相同的主题名称。这是 |
B.2.14. 有效期约束 复制链接链接已复制到粘贴板!
Validity 约束检查证书请求中的有效期期限是否满足条件。
提供的参数必须是 sensible 值。例如,一个提供已传递的时间的 notBefore
参数不会被接受,以及一个 notAfter
参数,它提供的时间比 notBefore
时间不会被接受。
参数 | 描述 |
---|---|
range |
有效周期的范围。这是一个整数,用于设置天数。notBefore 时间和 |
notBeforeCheck |
验证范围是否不在宽限期内。当 |
notBeforeGracePeriod |
|
notAfterCheck |
指示给定时间是否在过期期限之后。当 |