最终用户的 SSL 证书只是证书链的一部分。
让我们花几分钟时间讨论中间和根 CA 证书。 SSL(或更准确地说,TLS)是一种大多数最终用户知之甚少或一无所知的技术。即使是获得 SSL 证书的人通常也只知道他们需要 SSL 证书,并且他们必须在其服务器上安装 SSL 证书才能通过 HTTPS 为网站提供服务。说到中间证书和CA、根证书和CA,大多数人的眼睛都开始呆滞了。
什么是证书链?
在我们继续之前,我们需要介绍证书链的概念。一个问题:您的浏览器如何知道网站的 SSL 证书是否应该被信任?受信任根的任何从属证书都是受信任的。这在技术层面上如何运作?
当您访问网站时您的安全工具没有ca安全证书,浏览器会查看其 SSL 证书并快速验证证书的真实性。浏览器检查证书的有效期,确保证书没有被吊销,并验证证书的数字签名。
浏览器遵循证书链来验证证书。要获得颁发的 SSL 证书,首先生成证书签名请求 (CSR) 和私钥。在最简单的迭代中,您将 CSR 发送到证书颁发机构,然后证书颁发机构使用来自其根的私钥签署 SSL 证书并将其发回。
现在,当浏览器看到 SSL 证书时您的安全工具没有ca安全证书,它会看到该证书是由其根存储中的受信任根之一颁发的(或者更准确地说,是使用根的私钥签名的)。因为它信任根,所以它信任由根签名的任何证书。为了让您更容易理解,我们通过将服务器证书直接链接到根目录来简化上述内容。现在添加中间证书。
什么是中间证书?
证书颁发机构不会直接从其根证书颁发服务器/叶证书(最终用户 SSL 证书)。这些根证书太珍贵,风险太大,不能直接颁发。
因此,为了保护根证书,CA 通常会颁发所谓的中间根证书。 CA 使用其私钥签署中间根,使其受信任。 CA 然后使用中间证书的私钥来签署和颁发最终用户 SSL 证书。此过程可以执行多次,一个中间根签署另一个中间根,然后由 CA 使用它来签署证书。这些从根到中间到叶的链接是证书链。下面是证书链的可视化图。为了便于理解和简化复杂的流程,我们只在证书链中添加了一个中间证书。实际的证书链通常要复杂得多。
您可能会注意到,当 CA 颁发 SSL 证书时,它还会发送需要安装的中间证书。这样,浏览器就能够完成证书链并将服务器上的 SSL 证书链接回其根之一。浏览器和操作系统处理不完整链的方式不同。有些仅在缺少中间证书时发出问题和错误,而另一些则保存和缓存中间证书以备日后派上用场。
数字签名的目的是什么?
数字签名有点像数字形式的公证。当根证书对中间证书进行数字签名时,它实际上将部分信任转移到中间证书。因为签名直接来自受信任根证书的私钥,所以它是自动受信任的。
每当浏览器或设备收到 SSL 证书时,它都会收到证书和与证书关联的公钥。它使用公钥验证数字签名,并查看是谁生成的(即哪个证书签署了它)。你现在可以开始拼凑这些了。当您的浏览器验证网站上的最终用户 SSL 证书时,它会使用提供的公钥来验证签名并向上移动证书链中的链接。重复此过程:对签名进行身份验证,并遵循已签名的证书链,直到它最终到达浏览器信任库中的根证书。如果它不能将证书链接回其受信任的根,它就不会信任该证书。
根 CA 和中间 CA 有什么区别?
其实很简单。根 CA 是拥有一个或多个受信任根的证书颁发机构。这意味着它们植根于主要浏览器的信任库中。中间 CA 或子 CA 是由中间根颁发的证书颁发机构。它们在浏览器的信任存储中没有根,它们的中间根被链接回受信任的第三方根。这有时称为交叉签名。
正如我们之前所讨论的,CA 不会直接从其根颁发证书。它们通过颁发中间证书和使用中间证书签署证书来提高根证书的安全性。这有助于在发生失火或安全事件时最大限度地减少和划分损坏。当发生安全事件时,不需要撤销根证书,只撤销中间证书,使从该中间证书颁发的证书集不可信。
我们刚刚描述了根和中间体、涉及证书颁发机构、证书链和加密签名的信任模型,它们基本上归结为一个词:PKI 或公钥基础设施。到目前为止,我已经避免过多地使用这个术语,除非你深入了解一些细节,否则它似乎很抽象。
【来自SSL中国】