【发布时间】:2011-09-30 18:46:45
【问题描述】:
对于 CA 类型的基本约束,路径长度为 0 和 None 是否相同?澄清一下,路径长度为 0 是否意味着 CA 不能颁发证书,而路径长度为 none 是否意味着它可以颁发无限数量的证书?
【问题讨论】:
标签: path certificate constraints
对于 CA 类型的基本约束,路径长度为 0 和 None 是否相同?澄清一下,路径长度为 0 是否意味着 CA 不能颁发证书,而路径长度为 none 是否意味着它可以颁发无限数量的证书?
【问题讨论】:
标签: path certificate constraints
取自RFC 5280,第 4.2.1.9 节:
pathLenConstraint 为零表示在有效的证书路径中不能遵循任何非自行颁发的中间 CA 证书。在出现的地方,pathLenConstraint 字段必须大于或等于零。在没有出现 pathLenConstraint 的地方,没有施加限制。
即pathLenConstraintof 0 仍然允许 CA 颁发证书,但这些证书必须是最终实体证书(BasicConstraints 中的 CA 标志为假 - 这些是颁发给个人或组织的“正常”证书)。
这也意味着使用此证书,CA 不得颁发中间 CA 证书(CA 标志再次为真 - 这些证书可能会颁发更多证书,从而将 pathLen 增加 1)。
另一方面,pathLenConstraint 不存在意味着考虑到从最终实体证书构建的证书路径的长度没有限制,这将导致我们的示例 CA 证书。这意味着 CA 可以为子 CA 颁发中间证书,该子 CA 可以再次颁发中间证书,该子 CA 可以再次...直到最终一个子 CA 颁发最终实体证书。
如果给定 CA 证书的 pathLenConstraint > 0,则它表示从最终实体证书到 CA 证书构建的路径中可能的中间 CA 证书的数量。假设 CA X 的 pathLenConstraint 为 2,则最终实体证书颁发给 EE。那么以下场景都是有效的(我指的是中间CA证书)
X - EE
X - I1 - EE
X - I1 - I2 - EE
但这种情况和那些具有更多中间 CA 的情况不是
X - I1 - I2 - I3 - EE
...
【讨论】: