首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >已超出自签名证书路径约束

已超出自签名证书路径约束
EN

Stack Overflow用户
提问于 2022-01-13 20:10:32
回答 2查看 445关注 0票数 0

我有以下自签署证书链:

RootCA -> IntermediateCA (由root签名) ->服务器证书(leaf for TLS,由中间签名)

RootCA有MaxPathLen =0

我的证书是使用certstrap使用CreateCertificateAuthorityCreateIntermediateCertificateAuthority生成的,因此我假设默认设置是正确的。但是,当试图让我自己签名的证书使用Python或Node客户端时,我遇到了一个path length constraint exceeded错误。

注意:通过提供中间CA证书,使用Go TLS客户端时,设置工作正常。Python和Node似乎需要完整的证书链,因此出现了问题。

rfc5280中,我看到了这样的声明:

在这种情况下,它给出了在有效的证书路径中可能跟随此证书的非自颁发中间证书的最大数量。

我被non-self-issued intermediate certificates弄糊涂了。这是否意味着我的链是有效的,因为RootCA对中间层进行了签名(因此它是,而不是,非自发)。或者它是无效的,因为中间值算作是一个non-self-issued证书。self到底指的是什么?可能是自我签名,也可能是根是自我。

在这种情况下,我的rootCA是否应该有一个MaxPathLen为1?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-01-13 20:28:26

自我颁发指的是链中的证书,该证书是发给自己的--即主体和签发者是相同的。这通常用于密钥转换目的,否则可以忽略。

您的问题之所以出现,是因为您将basicConstraint pathLenConstraint 0放置在根上。如果值为0,则应该位于链中的最后一个CA上--您称为中间CA。

来自RFC 5280:

pathLenConstraint为零表示在有效的证书路径中不可能遵循非自颁发的中间CA证书。

这是明智的,不要在你的根上的pathLenConstraint,因为你可能不知道签署时,你的下属CA将如何随着时间的推移。

票数 2
EN

Stack Overflow用户

发布于 2022-01-13 20:25:12

如果根有一个MaxPathLen=0,那么它只能发出end实体证书,并且没有中间CA证书可以跟随。根CA是自签名的.

在您的情况下,根已经发出了一个中间CA,这是不允许的。会得到你描述的错误。

非自发中级证书

这指的是中间CA,它可以跟随由该根发出的根。

或者它是无效的,因为该中间值是一个非自发证书.

这是正确的,中间超过MaxPathlen = 0。

自我

指的是根。

根CA与maxPathLen

具有maxPathLen >= 1的根CA将适用于所给出的场景。它可以有一个中间CA,该中间可以对end实体证书进行签名。

代码语言:javascript
复制
Root -> ICA -> EE

但是,使用该maxPathLen=1,以下内容将无法工作:

代码语言:javascript
复制
Root -> ICA-1 -> ICA-2 -> EE
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70702548

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档