SSL证书可以由多个证书颁发机构签名吗?

35

希望能有更多的信任分散出去,这样我们就不必在任何情况下都依赖于一个根证书。

一个证书能否由多个CA签名?

5个回答

22

1
但是是否有其他支持多个签名的格式? - Jumbogram
4
@Jumbogram: 我不知道是否有其他格式的X509证书支持多个签名。PKCS#7标准及其变体允许多个签名,但TLS不支持它们。还有TLS扩展定义了支持PGP密钥的选项,可以有多个签名,但我认为对这些扩展的支持不太普遍。 - President James K. Polk
谢谢。我正在尝试找出是否可能让多个CA认证一个SSL会话。我意识到我没有完全问清楚这个问题,所以我可能会重新表述并提出新问题,但是你的回答帮了我很多。 - Ben Sand

8
一个SSL证书可以由多个证书颁发机构签名吗?
这要取决于使用的公钥基础设施(PKI)。有两种广泛使用的PKI,它们都不允许。第一个广泛使用的PKI是CA/Browser基线要求。CA/B BR文件记录了浏览器的操作。第二个是IETF的PKIX。它是像curl和wget这样的用户代理遵循的。它们都不允许。对于更深入的讨论,请参见如何使用您的认证机构签署证书签名请求?
现在,还有另外两个选项可以适用于您,但需要一些工作。
第一个备选方案是运行自己的PKI,该PKI允许使用。但浏览器和其他用户代理程序将不知道如何处理证书。
第二个备选方案是使用包括第二个机构认证的扩展。然后,主要机构(如公共CA)将使用扩展签署请求。典型的用户代理将使用通常的公共CA签名,而您的自定义软件将使用嵌入式备用签名。
扩展通常用于策略(例如传达“扩展验证”信息),但这里也可能适用。但是,IETF的PKI缺乏策略,因此您可能需要创造性地解决问题。

此外,请参见Super User上的是否可能由两个机构签名证书?

请参见PKIX邮件列表上的具有多个签名者的证书?。 PKIX是由IETF指定的互联网公钥基础设施。


7

4
我对那篇文章并不信服。我认为作者在使用“交叉签名”(cross-signed)时实际上指的是“由两个不同的证书机构颁发的同一个实体的两个证书”。他提供的截图也显示了一个略微不同的证书名称(LYNC-PROD-08与LYNC-PROD-08.fngn.com)。 - Duncan Jones
我该如何在像nginx这样的服务中配置这两个链?据我所知,TLS1.2只允许接收单个链。 - Alexander Stumpf
我同意Duncan Jones的观点,也许更好的方式来描述交叉签名证书是:根CA要么是自签名的,要么是由另一个CA签名,使其看起来像一个中间CA,以不同的文件提供。就像在https://letsencrypt.org/certificates/(root X1和root X2)上发布的那些证书一样。 - undefined

4

0
不,一个证书只能由一个CA签名。 但是你可以拥有两个所谓的交叉签名证书,它们共享相同的私钥、公钥和相同的通用名称和其他公共信息,但由两个不同的CA签名。在这种情况下,它们都是验证由它们之一颁发的较低级别证书的同等有效替代品。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接