据我了解,密钥库通常会保存私钥/公钥,而信任库通常只保存公钥(并且代表您打算与之通信的受信任方的列表)。好吧,这是我的第一个假设,因此,如果这不正确,那么我可能起步并不顺利...
不过,我很想了解使用keytool时如何/何时区分商店。
因此,到目前为止,我已经使用
keytool -import -alias bob -file bob.crt -keystore keystore.ks
这将创建我的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
并与System.setProperty( "javax.net.debug", "ssl")
设置,我可以看到根据该证书信任认证(但不是下的密钥库部分)。我要导入的特定证书只有一个公共密钥,我打算用它通过SSL连接将数据发送给Bob(但这也许是另一个问题了!)。
任何指针或澄清将不胜感激。无论您导入什么,keytool的输出是否都是相同的,并且它的公正约定说一个是密钥库,另一个是信任库?使用SSL等时有什么关系?