Ssl 我可以用二级域的私钥签署三级证书请求吗?

Ssl 我可以用二级域的私钥签署三级证书请求吗?,ssl,openssl,certificate,ssl-certificate,Ssl,Openssl,Certificate,Ssl Certificate,假设我拥有一个常规的非通配符SSL证书,例如example.com 我想成为example.com所有子域的证书颁发机构。例如,我想为wiki.example.com发出一个证书请求,并使用example.com的私钥对其进行签名,该私钥由comdo/Thawte/where签名 浏览器会考虑证书链WKI.Exq.com?> Expul.com?> thaTE是有效的一个? 不。你可以使用你的ExpLoop.com证书的私钥来签署Wik.IcthPule.com的证书,并将ExpLo.com证书

假设我拥有一个常规的非通配符SSL证书,例如example.com

我想成为example.com所有子域的证书颁发机构。例如,我想为wiki.example.com发出一个证书请求,并使用example.com的私钥对其进行签名,该私钥由comdo/Thawte/where签名

浏览器会考虑证书链WKI.Exq.com?> Expul.com?> thaTE是有效的一个?

不。你可以使用你的ExpLoop.com证书的私钥来签署Wik.IcthPule.com的证书,并将ExpLo.com证书设置为WikI.ExpLy.com的“颁发者”,但是所有浏览器都会拒绝这种证书链。

原因是每个证书都有密钥使用字段。您的证书example.com将具有以下允许的用途:

X509v3 Extended Key Usage: 
        TLS Web Server Authentication, TLS Web Client Authentication
所有合理的SSL验证器都必须拒绝将此证书作为CA证书,因为CA证书必须是

X509v3 Key Usage: critical
            Certificate Sign, CRL Sign
更新

正如@dave_thompson_085所提到的,证书必须具有包含CA布尔标志的字段基本约束。位标志KeyUsage.keyCertSign X509v3密钥用法:Openssl输出中的证书签名和BasicConstraints.CA X509v3基本约束:Openssl输出中的CA一起断言请参阅


私钥example.com可能仅在设置了两个位时才用于中间CA。

这是否回答了您的问题?还有和链接。还有BasicConstraints.CA=false vs-true谢谢你的回答,注意到了keyUsage和BasicConstraints字段的差异。