信任库与密钥库-用keytool创建
|
据我了解,密钥库通常会保存私钥/公钥,而信任库通常只保存公钥(并代表您打算与之通信的受信任方的列表)。好吧,这是我的第一个假设,因此,如果这不正确,那么我可能起步并不顺利...
不过,我很想了解使用keytool时如何/何时区分商店。
因此,到目前为止,我已经使用
keytool -import -alias bob -file bob.crt -keystore keystore.ks
这将创建我的keystore.ks文件。我对问题“我信任鲍勃”回答“ 1”,但是我不清楚这是否创建了密钥库文件或信任库文件?我可以将我的应用程序设置为使用该文件。
-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等时有什么关系?
没有找到相关结果
已邀请:
7 个回复
净爽
和
都被用于指定出于两个不同目的使用哪个密钥库。密钥库有多种格式,甚至不一定是文件(请参阅此问题),而
只是对其执行各种操作(导入/导出/列表/ ...)的工具。
和
参数是用于分别构建
和
s的默认参数,然后用于构建
,该基本包含用于通过
或
建立SSL / TLS连接时使用的SSL / TLS设置。这些系统属性正是默认值的来源,然后由ѭ14使用,例如itself15本身使用。 (如果您不想为给定目的使用默认值和特定的ѭ11,则可以在许多地方通过API自定义所有这些内容。)
和
之间的差异(以及
和
之间的差异)如下(引自JSSE参考指南): TrustManager:确定是否 远程身份验证凭据(和 因此连接)应该是 值得信赖。 KeyManager:确定哪个 要发送到的身份验证凭据 远程主机。 (其他参数可用,并且它们的默认值在JSSE参考指南中进行了描述。请注意,尽管信任存储有一个默认值,但密钥存储没有一个默认值。) 本质上,“ 4”中的密钥库用于包含您的私钥和证书,而“ 5”中的密钥库用于包含当远程方出示证书时您愿意信任的CA证书。在某些情况下,它们可以是一个存储库,并且可以是同一存储库,尽管通常最好的做法是使用不同的存储库(尤其是在基于文件的存储库中)。
怪酞撩匹
呸溉
系统属性引用的存储来创建SSL连接时寻找可信任的证书。键和
相同。但是从理论上讲,可以将一个文件和一个文件用于信任库和密钥库。
骨乏唯瓜
自我认证证书:
将证书导出到文件夹:
将证书导入客户端Truststore:
耐扫鹤胶鞭
。 6)检查它是否具有父证书,并遵循点“ 5”。 7)在创建所有证书之后,打开“命令提示符”,然后导航到创建证书的路径。 8)提供以下Keytool命令以添加证书并创建信任库。
9)为所有证书提供keytool命令,并将它们添加到信任库中。
肉簧咸缮
朗排谎纷瘟