行业新闻与博客

ssl 根证书和 ssl 中间证书之间的区别

最终用户 SSL 证书只是证书链的一部分。


 我们来谈谈中间和根 CA 证书几分钟。SSL(或更准确地说,TLS)是大多数最终用户几乎一无所知的技术。即使是获得它的人通常也不了解他们需要 SSL 证书的事实,他们必须将其安装在他们的服务器上以通过 HTTPS 服务他们的网站。 


 这就是为什么当你开始提到中级证书和 CA 以及根证书和 CA 时,大多数人的眼睛开始上釉,这使得它成为一个主题,你可能应该远离第一次约会(证书链更多的是第四次或第五次约会对话) )。 


但鉴于 SSL 是我们的事情,并且因为我们被问到很多关于它们的问题,今天我们将深入研究证书链,中间体和根源。起初看起来似乎很多,但希望在本文结束时看起来非常简单。 


所以不用多说,让我们把它搞定一下。 


什么是根程序?


 根证书(通常称为受信任的根)位于信任模型的中心,该模型支持公钥基础结构,并通过扩展 SSL / TLS。让我们从讨论根程序开始,然后从那里开始。 


每个设备都包含一个称为根存储的东西。根存储是预先下载的根证书(及其公钥)的集合,它们存在于设备本身上。通常,设备将使用其操作系统本机的任何根存储,否则它可能通过 Web 浏览器等应用程序使用第三方根存储。有几个主要的根程序值得注意:


  • 微软 
  • 苹果 
  • 谷歌 
  • Mozilla 的 


Apple 用户,包括 macOS 和 iOS,都依赖于 Apple root 商店,同样适用于 Microsoft 用户及其 root 商店。Android 使用谷歌。Mozilla 产品套件使用自己的专有根存储。


 根程序在极其严格的指导下运行。除了 CA / B 论坛的基线要求提出的法规和限制之外,一些根程序(例如 Mozilla 的)在顶部添加了更严格的要求。


 原因很简单:信任。 


根证书非常宝贵,因为任何使用其私钥签名的证书都将被浏览器自动信任。你真的需要确保你可以信任从它发出的证书颁发机构。


 从这个意义上说,在两个特定的上下文中查看信任可能会有所帮助: 


  • 社会信任 
  • 技术信托 


后者完全取决于前者。CA 必须遵守的严格要求,审计和公众审查 - 这一切都意味着确保 CA 保持足够的社会信任,以获得拥有受信任根的技术信任。


 通常,这些事情非常简单,通常 CA 已经发布了交叉签名的中间件(我们将在一秒内完成)并在申请使其根信任之前执行自己的 CA 业务一段时间。或者,换句话说,您不能只是形成一个 CA 并立即申请让您的 root 信任。正如我们几个月前在 DarkMatter CA 的辩论中看到的那样,审议有时会使政治倾斜。 


无论如何,一旦 CA 接受了应用程序并证明自己是值得信赖的,它就会将其根源添加到根存储中。 


什么是受信任的根证书?


 正如我们刚才所述,根证书是一种特殊的 X.509 数字证书,可用于颁发其他证书。 


对于初学者而言,最终用户或叶子 SSL 证书(通常是任何类型的公开信任的 PKI 证书)的使用寿命为两年 - 顶级 - 根证书的使用寿命更长,更长。这是 DigiCert 的 EV 根源之一,看看它的有效期:

通常,不同的根将具有不同的属性。这可能是两个 COMODO(现为 Sectigo)根据该列表顶部附近的最佳说明。一个用于制作 RSA 签名,另一个用于 ECDSA 签名。 从我的计算机系统自动信任从这些根中发出的任何证书。现在,到目前为止,我们以过于简单的方式看待这一点。这些根源的价值,以及一个人受到损害所带来的风险,意味着它们实际上很少被用来颁发证书。相反,旋转和释放中间体,但在第一次......


什么是证书链?


在我们进一步研究之前,我们需要介绍证书链的概念。让我首先提出一个问题:您的浏览器如何知道信任网站的 SSL 证书?


我们已经介绍过,受信任根的任何证书后代都是受信任的。但是,这在技术层面如何运作? 当您到达网站时,您的浏览器会查看其 SSL 证书并执行快速流程以验证证书的真实性。它检查其有效日期,确保证书尚未被撤销,并验证证书的数字签名。

您的浏览器对证书进行身份验证的操作是遵循证书链。要获得 SSL 证书,首先要生成证书签名请求(CSR)和私钥。在最简单的迭代中,您将 CSR 发送到证书颁发机构,然后使用来自其根的私钥签署您的 SSL 证书并将其发回。


 现在,当浏览器看到 SSL 证书时,它会看到证书是由其根存储中的一个受信任根颁发的(或者更准确地说,是使用 root 用户的私钥签名)。由于它信任 root,因此它信任根签名的任何证书。 


同样,这是过于简单的,以使其更容易理解。在此示例中,服务器证书直接链接到根。现在让我们混合中间体。 


什么是中间证书?


如上所述,证书颁发机构不会直接从其根目录颁发服务器 / 叶子证书(最终用户 SSL 证书)。这些根源太有价值,而且风险太大。


 因此,为了使自己隔离,CA 通常会发布所谓的中间根。CA 使用其私钥对中间根进行签名,这使其受信任。然后,CA 使用中间证书的私钥来签署和颁发最终用户 SSL 证书。此过程可以多次播放,其中中间根签署另一个中间,然后 CA 使用它来签署证书。从根到中间到叶子的这些链接是证书链。


 这是证书链的可视化。对于我们的例子,我们只使用一个中间体来保持简单。真实的证书链通常要复杂得多。

您可能已经注意到,有时当您的 CA 颁发 SSL 证书时,它也会发送您需要安装的中间证书。这样浏览器就能够完成证书链并将服务器上的 SSL 证书链接回其根源之一。


浏览器和操作系统在处理不完整链条方面有所不同。有些只会在缺少中间体时发出错误,其他人会保存并缓存中间体,以防以后它们派上用场。

数字签名起什么作用?


 在这种情况下,数字签名有点像数字形式的公证。当根证书以数字方式签署中间证书时,它实质上将其部分信任转移给中间证书。由于签名直接来自受信任的根证书的私钥,因此它会自动受信任。 


这一段会有一点技术性,所以请随意跳过。每当向浏览器或设备提供 SSL 证书时,它都会收到证书本身以及与证书关联的公钥。使用公钥,它验证数字签名,并查看它是由谁签署的 - 签署了什么证书。你现在可以开始拼凑这个。当您的浏览器在网站上验证最终用户 SSL 证书时,它会使用提供的公钥来验证签名并将一个链接向上移动。它继续重复此过程 - 对签名进行身份验证并在链接后签署签名证书 - 直到最终它到达浏览器信任库中的一个根证书。 


如果它无法将证书链接回其受信任的根之一,则它将不信任该证书。


好的,那么根 CA 和中间 CA 有什么区别? 


这实际上相当简单。根 CA 是拥有一个或多个受信任根的证书颁发机构。这意味着它们已经扎根于主要浏览器的信任库。中间 CA 或子 CA 是颁发中间根的证书颁发机构。它们没有源于浏览器的信任库,而是它们的中间根链回到受信任的第三方根。这有时称为交叉签名。

现在,这里可能会让人感到有些困惑。正如我们之前讨论的那样,CA 并不直接从它们的根源发出。他们通过发布中间体然后用这些中间人签署证书来增加安全层。这有助于在发生错误或安全事件时最小化和划分损坏。您只需撤销中间人,而不是撤销根证书以及按扩展名签署的每个证书,这只会导致从该中间人发出的证书组不受信任。


这是一个实际的例子,谷歌和其他浏览器最近不信任赛门铁克 CA 品牌 SSL 证书。乍一看,这看起来像是一项巨大的任务,不信任数以百万计的最终用户 SSL 证书。实际上,它非常简单。他们刚刚从他们的信任商店中删除了所有 Symantec CA 的根。现在任何应该链回到那些根的证书都会失败并且不受信任。(值得注意的是 DigiCert 已经很好地清理了赛门铁克,但这对于这次讨论来说是一个很好的现实生活例子。) 


链式根和单根之间有什么区别?


 这实际上回到了我们的最后一个问题。单个根由 CA 拥有。它可以直接颁发证书,使部署证书和简化安装变得更加简单。链式根是子 CA 用于颁发证书的根。它是一个中间证书,但是,因为子 CA 没有自己的受信任的根,所以必须链接到具有一个的第三方 CA.


 这也有所不同。原因如下: 


  • 链式根用于更复杂的安装,因为需要将中间根加载到托管证书的每个服务器和应用程序。
  •  链式根源受到它们所链接的 CA 的支配。他们无法控制 root,因此如果 Root CA 停业,他们就会被搞砸。
  •  Roots 和 Intermediate 证书也将过期。虽然时间较长。但是,中间必须在其根之前到期,这增加了复杂性。


 关于根和中间体的最后一句话 


我们刚刚描述的内容 - 涉及证书颁发机构,证书链和加密签名的信任模型 - 本质上是 PKI 或公钥基础结构。到目前为止,我已经避免过多地使用这个术语了,因为在你深入研究细节之前,它似乎非常抽象。


 但是,当有人提到 PKI 时,这就是他们的意思。考虑到这一点,您可以了解如何在企业环境中部署私有 CA 和自签名证书。与受信任的 CA 一起工作,组织生成根证书和私钥(这称为关键仪式)。然后,组织将根添加到其自己的根存储中,跨所有系统和设备。从那时起,组织可以使用自己的私钥自行签署自己的 X.509 证书,并且它们将在整个网络中受到信任。


感谢对亚洲注册的支持与信任!

严禁转载!

需要帮助吗?联系我们的支持团队 在线客服