【发布时间】:2018-06-22 19:55:58
【问题描述】:
我试图以通俗的方式理解信任库和密钥库之间的区别。它们与 java 中的 cacerts 有什么关系?我经历了很多线程,但仍然无法理解何时使用密钥库以及何时使用信任库。
当我尝试通过 https 对 Web 服务进行 API 调用时,我不断收到 SSL 证书问题。 HTTPS 服务使用的是自签名证书,我将证书导入到我的 cacert,但问题仍然存在。我必须在哪里导入此服务器证书?如果导入解决了问题,我在部署应用时是否需要在其他环境中导入证书?
我们的应用程序使用了一个 JKS 文件,它需要什么?当我查看 JKS 文件时,我看到其中有 2 个证书。我们为什么要使用它?
对于信任库,我看到人们说信任我们自己。我们靠什么相信自己?信任库是否使用任何证书?我应该什么时候使用密钥库而不是信任库?
对理解这一点的任何帮助都会对我很有帮助。
【问题讨论】:
-
Truststore 存储您信任的证书(密钥对的公共部分)。这用于客户端证书身份验证 - 如果客户端提交由受信任证书签名的密钥,则他们成功进行身份验证。我们的信任库可选。密钥库存储 key(密钥对的私有部分),服务器用来证明它就是它所说的那个人。 SSL需要一个密钥库。
-
如果我知道在进行 ssl 调用时我需要将证书存储在密钥库中,而不是在 java 中使用 cacerts。在 cacerts 中导入证书并不能解决问题?
-
这可能有助于理解:*.com/questions/318441/…
-
从技术上讲,它们是一回事。进行逻辑分离以避免将私钥与公共证书放在同一个文件中。这样的信任库可以安全地重新分配,而共享私钥则完全相反。
标签: java keystore truststore