我知道密钥库通常会保存私钥/公钥,信任存储只保存公钥(并代表您打算与之通信的可信方列表).嗯,这是我的第一个假设,所以如果这不正确,我可能还没有开始......
我对使用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等时的关系是什么?
我不知所措,因为我不是一个Tomcat人.我需要使用第三方的Web服务,他们需要通过SSL进行客户端身份验证,因此他们生成并颁发了SSL证书.不幸的是,这是他们支持它,并不能给我任何方向如何实际使用它.我坚持使用这个第三方,所以不幸的是我不得不忍受他们缺乏支持.
所以我所拥有的是供应商为我们提供的Java应用程序(显然从未必须处理过这个问题),在CentOS 5.3上运行6.0.20的Tomcat应用服务器,以及来自第三方的SSL证书.
在这一点上我需要做什么?我在网上找到的就是如何设置密钥库,以便我的应用程序可以对连接到它的东西使用客户端身份验证,而不是在需要连接到其他人时,或者如何在端口8443上使用SSL(我知道如何做已经设置).