使用经过验证的证书签署他人

信息安全 证书 公钥基础设施
2021-09-04 22:14:14

这通常与 PKI 和证书有关,但更具体地涉及网站。

您能否从 CA 获得经过验证的证书,该证书已签名且可以使用,然后使用它来签署您自己的已验证证书。据我了解,PKI链还是有效的,有一个CA,我的验证过的证书,还有我验证过的子证书。

这主要是针对个人项目和一些理论,但我不确定我在这里遗漏了什么,因为我确信这是不可能的,这对 CA 来说将是一个大输家。我了解自签名的概念,这可能就是我将使用的多个证书。但是,为什么您不能只获得 CA 验证的您正在签名的个人根证书并完成浏览器链呢?

2个回答

要使证书作为中间 CA 有效(即,作为证书链的一部分,而不是在最后——这就是您建议做的),它必须具有cA标志设置为的基本约束扩展TRUE否则,验证链的系统(例如,Web 浏览器,在验证服务器证书时)将拒绝该链。请参阅RFC 5280的第 4.2.1.9 和 6.1.4 节(项目“k”)。商业 CA 可以向您出售cA标志设置为 true 的证书,但这通常并不便宜。“普通”证书(个人可以提供的证书)将cA标志设置为 false。

请注意,直到大约 2003 年,Internet Explorer 都无法验证cA标志,而您的方案本来可以工作。当然,这是一个巨大的安全漏洞,因为任何人都可以充当伪 CA 并颁发其中包含任何名称的证书。

证书被指定为对一组“密钥用途”有效,其中包括 SSL 服务器、证书颁发机构、代码签名、电子邮件签名等(在这里可以找到一个很好的列表)。只有被指定为证书颁发机构的证书才会被信任来签署其他证书;如果签名链中的一个链接缺少该密钥使用,那么它会破坏该链。

我相信您可以从 Verisign/Thawte/etc 购买证书,该证书将允许您在有限的域层次结构内签署证书,例如,您可以仅在 yourcompany.com 下创建证书,但信任链可以连接到您购买签名的 CA来自的证书。当然,出于显而易见的原因,他们为此收取更多费用。