专栏首页SSL China根证书和中间证书的区别

根证书和中间证书的区别

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

让我们花几分钟时间讨论一下中间证书和根CA证书。SSL(或者更准确地说,TLS)是一项大多数终端用户知之甚少甚至一无所知的技术。即使是获取了SSL证书的人通常也只知道他们需要SSL证书,而且他们必须在服务器上安装SSL证书,才能通过HTTPS为网站提供服务。当提到中间证书和CAs、根证书和CAs时,大多数人的目光开始变得呆滞。

什么是证书链?

在进一步讨论之前,我们需要先引入证书链的概念。提一个问题:您的浏览器如何知道是否应该信任网站的SSL证书? 受信任的根的任何下级证书都是受信任的。这在技术层面上是如何工作的呢?

当你访问一个网站时,浏览器会查看它的SSL证书,并快速的验证证书的真实性。浏览器会检查证书的有效期、确保证书没有被撤销、验证证书的数字签名。

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

现在,当浏览器看到SSL证书时,它会看到证书是由其根存储中的一个受信任根颁发的(或者更准确地说,使用根的私钥签名)。因为它信任根,所以它信任根签名的任何证书。为了使你更容易理解,上述内容我们作了简化,将服务器证书直接链到根。现在加入中间证书。

什么是中间证书?

证书颁发机构不会直接从它们的根证书颁发服务器/叶子证书(最终用户SSL证书)。这些根证书太宝贵了,直接颁发风险太大了。

因此,为了保护根证书,CAs通常会颁发所谓的中间根。CA使用它的私钥对中间根签名,使它受到信任。然后CA使用中间证书的私钥签署和颁发终端用户SSL证书。这个过程可以执行多次,其中一个中间根对另一个中间根进行签名,然后CA使用该根对证书进行签名。这些链接,从根到中间到叶子,都是证书链。下面是证书链的可视化图形,为了便于理解,简化复杂的过程,我们只在证书链中加入一个中间证书,实际的证书链通常要复杂得多。

你可能会注意到,当CA颁发SSL证书时,它还会发送需要安装的中间证书。这样,浏览器就能够完成证书链,并将服务器上的SSL证书链接回它的一个根。浏览器和操作系统处理不完整链的方式各不相同。有些只会在中间证书丢失时发出问题并报错,而另一些则会保存和缓存中间证书,以防它们日后派上用场。

数字签名的作用是什么?

数字签名有点像数字形式的公证。当根证书对中间证书进行数字签名时,它实际上是将部分信任转移给中间证书。因为签名直接来自受信任根证书的私钥,所以它是自动受信任的。

任何时候,只要向浏览器或设备提供SSL证书,它就会接收证书以及与证书关联的公钥。它通过公钥验证数字签名,并查看它是由谁生成的(即由哪个证书签名的)。你现在可以开始把这些拼凑起来。当您的浏览器在网站上验证最终用户SSL证书时,它使用提供的公钥来验证签名并在证书链上向上移动一个链接。重复这个过程:对签名进行身份验证,并跟踪签名的证书链,直到最终到达浏览器信任存储中的一个根证书。如果它不能将证书链回其受信任的根,它就不会信任该证书。

根CA和中间CA有什么区别呢?

这其实很简单。Root CA(根CA)是拥有一个或多个可信根的证书颁发机构。这意味着它们根植于主流浏览器的信任存储中。中间CAs或子CAs是由中间根发出的证书颁发机构。 它们在浏览器的信任存储中没有根,它们的中间根会链回到一个受信任的第三方根。这有时称为交叉签名。

正如我们前面讨论的,CA并不直接从它们的根颁发证书。他们通过颁发中间证书并使用中间证书签署证书,增加根证书的安全性。这有助于在发生误发或安全事件时最小化和划分损害,当安全事件发生时,不需要撤销根证书,只需撤销中间证书,使从该中间证书发出的证书组不受信任。

我们刚描述了根和中间体,涉及到证书颁发机构、证书链和加密签名的信任模型,本质上归结到一个词:PKI或公钥基础设施。到目前为止,我一直避免过多地使用这个术语,除非你深入了解一些细节,否则它看起来非常抽象。

原文链接:https://www.thesslstore.com/blog/root-certificates-intermediate/

原文作者:Patrick Nohe

登录 后参与评论
0 条评论

相关文章

  • 通配符证书和单域名SSL证书的区别

      通配符证书和单域名SSL证书有什么区别?首先,我们先来了解通配符证书和单域名SSL证书的定义:

    安信SSL证书
  • Azure App Service 上的根证书

    App Service 有一个受信任的根证书列表,您不能在 App Service 的多租户版本中修改这些证书,但您可以在应用服务环境 (ASE) 的受信任根存...

    Edi Wang
  • SSL证书的区别和申请办法

    从2017年开始意味着浏览器迁移HTTPS的重要开始,因为Chrome 56版本讲HTTP标记为非安全的网站。证书是用于SSL安全通信信道鉴权,它...

    mariolu
  • 手动为Android 4.x 手机加入�自己的根证书(CA 证书)

    AOSP Android系统中CA证书文件的位置在:/ system/etc/security/cacerts/一系列的以数字命名的.0文件

    全栈程序员站长
  • HTTP和HTTPS有什么区别? 什么是SSL证书?使用ssl证书优势?

    HTTP(Hypertext Transfer Protocol)超文本传输协议是用来在Internet上传送超文本的传送协议,它可以使浏览器更加高效,使网络传...

    全栈程序员站长
  • 已处理证书链,但是在不受信任提供程序信任的根证书中终止

    win7 或以下系统没有 证书管理机构, 用下面方法彻底可以解决 证书不认问题 https://social.technet.microsoft.com/For...

    庞小明
  • Linkerd 2.10(Step by Step)—生成您自己的 mTLS 根证书

    为了支持网格化 Pod 之间的 mTLS 连接, Linkerd 需要一个信任锚证书(trust anchor certificate)和一个带有相应 key ...

    为少
  • 代码签名证书的类别都有哪些?不同类别的证书有哪些区别?

    软件产品由于大多以虚拟方式存在,因此为了提高这些产品的安全性,通常软件开发者会为软件的可执行程序进行签名,以保证软件代码不会受到修改和损坏,那么代码签名证书的类...

    用户8715145
  • 代码签名证书的区别是什么?代码签名证书有什么用?

    很多软件中都会存在代码签名证书,这些证书通常是作为保护软件内容而存在的,但是很多人会发现代码签名证书的数字认证厂商是非常多的,那么不同数字认证厂家的代码签名证书...

    用户8715145
  • ILSSI认证和一般的证书有什么区别?

    国际精益六西格玛研究所 ( ILSSI ) 是一家在英国成立的组织,由各界别的精益六西格玛专业人士组成的联盟,为精益和六西格玛的考试和认证提供国际认可的标准。

    优思学院
  • 一日一技:HTTPS 证书和中间人攻击的原理

    有同学在知识星球和公众号粉丝群里面提到,希望我讲一讲 HTTPS 证书、为什么使用 Charles、Fiddler、MitmProxy 抓 HTTPS 的请求要...

    青南
  • ECC证书的生成和验签

    RSA的计算原理是简单的:对消息进行幂次方取模得到 加密消息。对高安全等级的要求势必增加幂次方的位数。所以这个RSA的加密位数长度是把双刃剑。它一方面增加了破译...

    mariolu
  • Win 7安装.Net Framework出现已处理证书链,但是在不受信任提供程序信任的根证书中终止

    6.点击确定,依次打开证书-受信任的根证书颁发机构-证书,点击右侧的更多操作-所有任务-导入-下一步

    R0A1NG
  • 在Linux下如何根据域名自签发OpenSSL证书与常用证书转换 修改openssl.cnf配置文件创建根证书自签发泛域名证书将crt转pem格式生成 p12 格式的

    当然上述的公钥制作方式需要交互式输入信息,如果不想频繁输入,那么可以使用如下命令:

    踏歌行
  • 自己使用keytool生成证书 和 购买 商业SSL证书,然后并配置Tomcat 的 https

    目前证书有以下常用文件格式:JKS(.keystore),微软(.pfx),PEM(.key + .crt)。其中,tomcat使用JKS格式,nginx使用P...

    HaC

扫码关注腾讯云开发者

领取腾讯云代金券