当前位置: 首页 > 知识库问答 >
问题:

在SSL信任层次结构中,什么用于签署中间证书,以及它与根证书的关系如何?

贾沛
2023-03-14

我正在完成一项关于SSL的作业,我觉得我了解证书如何与非对称和对称加密结合使用的基础知识。但我很难理解信任层次结构到底是如何工作的一些细节。

具体来说,什么是用来签署中级证书的?我看过的所有指南都说明CA根证书用于签署中间证书。但“签署”在这里的确切含义是什么?换句话说,服务器如何证明其中间证书由CA根证书认证?

我的猜测是,生成中间证书的签名时使用了根证书的公钥或签名,但我不确定这是否准确。

我真的很感激任何信息,以提高我的理解。

共有1个答案

干鑫鹏
2023-03-14

如果只有一个中间证书(通常是这样,但并不总是这样),则中间证书由根证书签名,其方式与最终实体证书(对于SSL/TLS,主要是服务器证书)由中间证书签名的方式完全相同。在这两种情况下,这都是一种速记;签名实际上是使用非对称密钥对的私钥完成的,证书包含同一密钥对的公钥,该密钥对用于验证使用私钥进行的签名。由于私钥是私钥,而我们所有使用CA的人只看到它们的公钥,因此我们将重点放在这一点上。因此:

>

根据SSL/TLS标准,服务器应该始终在握手中发送服务器证书之后的中间证书(或证书,按顺序),尽管如果它没有这样做,一些客户可能会从证书中使用AIA或其他启发式方法来获得证书,或者可能已经缓存或甚至配置了它。

中间证书使用属于根CA的私钥签名;根证书包含匹配的公钥。作为验证中间证书的一部分,可靠性者使用中间证书中的发行者名称找到根证书,并使用根证书中的公钥来验证中间证书上的签名;这确保中间证书实际上是由根CA并且没有被篡改。

根证书通常必须(已经)在依赖者的本地信任存储中,服务器不需要发送它;通常信任存储由浏览器开发人员(火狐)或操作系统/平台开发人员(IE/Edge,<--plhd--0)提供/>,Safari)。

请注意这两条语句之间的相似性,但(值得注意的)例外是relier如何查找父证书。还请注意,验证SSL/TLS连接的服务器证书链所涉及的远不止验证签名,尽管验证签名是一个关键部分,没有它,其他验证标准就无法保证。

一个中间CA和中间证书通常会被大量(数千到数百万)服务器证书和服务器使用。服务器不负责“证明”中间证书的任何内容,只负责将其传递给客户端,客户端验证整个链。

交叉堆栈也可以看到https://security.stackexchange.com/questions/56389/ssl-certificate-framework-101-how-does-the-browser-actually-verify-the-validity它有一个很好的关系图形。

 类似资料:
  • 局域网IP地址怎么生成受信任的SSL证书?比如启明星辰的设备ip地址证书就是受信任的。

  • inter证书有什么用? 我有这个证书链: root-VeriSign Class 3 Public Primary Certification Authority-g5.cer Inter-Symantec Class 3 EV SSL CA-G3.CER website.pfx

  • 您应该使用什么方式与您的证书颁发机构签署证书请求?一种方法比另一种方法好吗(例如,一种方法被弃用)?

  • 我最近升级了Inteliij IDEA 2019.2,如果我尝试从IDE中提取Git,我会发现以下错误:无法访问'https://github.xxx.com/app-Hello-USD/DGS.git/“:SSL证书问题:证书链中的自签名证书。 有人能帮我什么选项,我必须启用。 谢谢

  • 问题内容: 当尝试使用其PHP库通过Twilio发送消息时,我正在为这个错误而苦苦挣扎: 我在Windows 7上使用了wamp。 我当然找到了所有其他有关证书错误的信息。据我所知,通常更新或添加文件即可解决该问题。但是,即使这样做,我仍然遇到相同的错误。 就像这里所做的健全性检查一样,这正是我所做的: 从此处下载了最新的证书:http : //curl.haxx.se/ca/cacert.pem

  • 问题内容: 我想使用TLS相互身份验证来验证go制成的API上的客户端。我创建了一个证书颁发机构,假设鲍勃有一个他想与客户端一起使用的密钥对。鲍勃(Bob)创建了一个证书请求,希望我验证他的证书,以便在API上进行授权和身份验证。 我用它来创建我的证书颁发机构: Bob用它来创建他的证书和证书请求: 我想实现这一目标,但是请继续: 现在,通过这些命令,Bob可以使用此tls.Config创建到我的