将信任分散一点是很好的,所以我们不必在任何实例中只依赖一个根。
是否可以拥有一个由多个CA签名的证书?
答案 0 :(得分:17)
不,版本3之前的X509 certificate format旨在包含一个签名。
答案 1 :(得分:4)
是的,有可能。你可以在这里找到一个例子:
http://www.confusedamused.com/notebook/fixing-verisign-certificates-on-windows-servers/
答案 2 :(得分:2)
SSL证书可以由多个证书颁发机构签名吗?
这取决于,但主要是NO。这取决于所使用的PKI。有两种广泛使用的PKI,它们都不允许使用它。
第一个普遍存在的PKI属于CA/Browser Baseline Requirements。 CA / B BR记录了浏览器正在做什么。第二个是IETF的PKIX。它是像curl和wget这样的用户代理所遵循的。他们都不允许这样做。
CA / B和IETF的规则略有不同。有关更深入的讨论,请参阅How do you sign Certificate Signing Request with your Certification Authority?
现在,还有其他两个选项可供您使用,但它们需要一些工作。
第一个替代选项是运行您自己的PKI,它允许它。但浏览器和其他用户代理不知道如何处理证书。
第二种备选方案是使用包含第二权威认证的扩展。然后,主要权限(如公共CA)将使用扩展名对请求进行签名。典型的用户代理将使用惯用的公共CA签名,而您的自定义软件将使用嵌入的备用签名。
扩展通常用于策略(例如传达"扩展验证和#34;信息),但它可能在这里工作。但是,IETF的PKI缺乏政策,因此您可能需要发挥创意。
另请参阅超级用户Is it possible to have a certificate signed by 2 authorities?。
另请参阅PKIX邮件列表中的Certificate with Multiple Signers?。 PKIX是IETF提出的互联网PKI。
答案 3 :(得分:0)
是的,一个证书可以由多个 CA 签署。这方面的术语是交叉签名。有关其工作原理的详细说明,请参阅 https://letsencrypt.org/certificates/。请注意,在页面顶部的图表中,几个 Let's Encrypt 的中间证书由两个根证书(ISRG Root X1 和 DST Root CA X3)签名。此外,请参阅 https://security.stackexchange.com/questions/14043/what-is-the-use-of-cross-signing-certificates-in-x-509 了解详情。