【问题标题】:keystore and truststore confusion密钥库和信任库混淆
【发布时间】:2018-11-11 11:31:14
【问题描述】:

我在理解密钥库和信任库的概念方面遇到问题。

我想通俗点理解:

假设我有以下应用程序:

App A -> Client Application

App B -> Server Application.

如果应用 A 想通过 https 调用应用 B 的 URL 来进行 API 调用,那么应用 A 需要应用 B 提供哪些信息(密钥库/信任库)?

哪个应用程序保留密钥库,哪个应用程序保留信任库?

我在网上找不到任何好的资源。如果有人能清楚地描述信任库和密钥库之间的区别,真的很感激?

【问题讨论】:

  • 如果您正在为您的服务器创建自签名证书,则会在您的服务器上创建一个 .keystore 文件并生成一个证书。您需要将该证书添加到客户端应用程序的 Java 密钥库中,以通过 HTTPS 协议调用服务器 API。
  • 谢谢,但在这种情况下,谁拥有信任库?
  • 如果您的服务器和客户端是不同的机器,那么证书将被添加到您的客户端的 Java 信任存储中。
  • 据我了解,客户端信任库将保留证书条目仅用于验证目的。但另外,如果我想通过 https 连接到服务器,那么我还需要将该证书添加到密钥库也是如此。
  • 是的,这适用于我们自己为服务器创建的自签名证书!

标签: java keystore truststore


【解决方案1】:

App B(服务器)将身份证书(我们称之为 C)存储在密钥库中。当 App B 尝试连接到 App B 时,App B 会将 C 呈现给 A。

应用 A(客户端)将使用信任存储中存在的证书验证 B(即 C)提供的证书。 (这些证书来自 CA(证书颁发机构)。

【讨论】:

  • 谢谢。据我了解,信任库用于验证证书。因此,如果服务器证书由 CA 机构签名,那么我是否需要将此证书导入我的客户端信任库和客户端密钥库?
猜你喜欢
  • 2010-09-24
  • 2018-05-06
  • 1970-01-01
  • 2018-01-24
  • 2013-04-12
  • 1970-01-01
  • 1970-01-01
  • 2015-12-02
  • 2010-10-19
相关资源
最近更新 更多