可以用二级域名私钥签署三级证书请求吗?
Can I sign a certificate request for third-level with a private key of second-level domain?
假设我拥有 example.com 的常规(非通配符)SSL 证书。
我想成为 example.com 所有子域的证书颁发机构。例如。我想为 wiki.example.com 发出证书请求并使用 example.com 的私钥对其进行签名,该私钥由 Comodo/Thawte/whatever.
签名
浏览器会考虑证书链 wiki。example.com -> example.com -> Thawte 是有效的吗?
否。那么,您可以使用 example.com 证书的私钥为 wiki 签署证书。example.com 并将 example.com 证书设置为 wiki 的 'issuer'。example.com , 但所有浏览器都会拒绝这样的证书链。
原因是每个证书都有“Key Usage”字段。您的“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”(Openssl 输出中的“X509v3 Key Usage: Certificate Sign”)和“BasicConstraints.CA”(Openssl 输出中的“X509v3 Basic Constraints: CA”)一起断言(参见 RFC 5280, section 4.2.1.3).
仅当两个位都设置时,example.com 的私钥才可用于中间 CA。
假设我拥有 example.com 的常规(非通配符)SSL 证书。
我想成为 example.com 所有子域的证书颁发机构。例如。我想为 wiki.example.com 发出证书请求并使用 example.com 的私钥对其进行签名,该私钥由 Comodo/Thawte/whatever.
签名浏览器会考虑证书链 wiki。example.com -> example.com -> Thawte 是有效的吗?
否。那么,您可以使用 example.com 证书的私钥为 wiki 签署证书。example.com 并将 example.com 证书设置为 wiki 的 'issuer'。example.com , 但所有浏览器都会拒绝这样的证书链。
原因是每个证书都有“Key Usage”字段。您的“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”(Openssl 输出中的“X509v3 Key Usage: Certificate Sign”)和“BasicConstraints.CA”(Openssl 输出中的“X509v3 Basic Constraints: CA”)一起断言(参见 RFC 5280, section 4.2.1.3).
仅当两个位都设置时,example.com 的私钥才可用于中间 CA。