相关疑难解决方法(0)

Trust Store与Key Store - 使用keytool创建

我知道密钥库通常会保存私钥/公钥,信任存储只保存公钥(并代表您打算与之通信的可信方列表).嗯,这是我的第一个假设,所以如果这不正确,我可能还没有开始......

我对使用keytool时如何/何时区分商店感兴趣.

所以,到目前为止,我已经创建了一个密钥库

keytool -import -alias bob -file bob.crt -keystore keystore.ks
Run Code Online (Sandbox Code Playgroud)

这将创建我的keystore.ks文件.我回答yes问题我是否相信bob但是我不清楚这是否创建了密钥库文件或信任库文件?我可以设置我的应用程序以使用该文件.

-Djavax.net.ssl.keyStore=keystore.ks -Djavax.net.ssl.keyStorePassword=x
-Djavax.net.ssl.trustStore=keystore.ks -Djavax.net.ssl.trustStorePassword=x
Run Code Online (Sandbox Code Playgroud)

并且使用System.setProperty( "javax.net.debug", "ssl")set,我可以在受信任的证书下看到证书(但不在密钥库部分下).我导入的特定证书只有一个公钥,我打算用它通过SSL连接向Bob发送内容(但也许最好留给另一个问题!).

任何指示或澄清都将非常感激.无论你导入什么,keytool的输出都是相同的,它的惯例是一个是密钥库而另一个是信任存储?使用SSL等时的关系是什么?

java ssl jce keytool

239
推荐指数
4
解决办法
22万
查看次数

在java中使用自定义信任库以及默认信任库

我正在用Java编写一个应用程序,它通过HTTPS连接到两个Web服务器.一个通过默认的信任链获得证书,另一个使用自签名证书.当然,连接到第一台服务器是开箱即用的,而在我使用该服务器的证书创建一个trustStore之前,使用自签名证书连接到服务器不起作用.但是,与默认可信服务器的连接不再起作用,因为显然我创建自己的默认trustStore会被忽略.

我找到的一个解决方案是将证书从默认的trustStore添加到我自己的.但是,我不喜欢这个解决方案,因为它需要我继续管理那个trustStore.(我不能假设这些证书在可预见的未来仍然是静态的,对吧?)

除此之外,我发现了两个有着类似问题的5岁线程:

在JVM中注册多个密钥库

如何为Java服务器提供多个SSL证书

他们都深入到Java SSL基础架构.我希望到现在有一​​个更方便的解决方案,我可以在我的代码的安全审查中轻松解释.

java ssl keystore truststore

59
推荐指数
4
解决办法
5万
查看次数

标签 统计

java ×2

ssl ×2

jce ×1

keystore ×1

keytool ×1

truststore ×1