TrustStore用于存储来自认证机构(CA)的证书,以验证服务器在SSL连接中提交的证书。而Keystore用于存储私钥和身份证书,特定的程序应该向双方(服务器或客户端)出示这些证书进行验证。这就得出结论,它们是相互对立的。用通俗的语言来说,我们可以直接得出结论:在一个认证中,trustStore存放识别他人的身份证书,而keyStore存放持有我们的身份证书。
在java和编程语言中,每当我们试图与第三方应用程序进行通信时,就会用到这个概念。
TrustStore和KeyStore的区别在下面的表格内容中显示:
TrustStore | KeyStore |
---|---|
TrustStore不包含私人和敏感信息。 | Keystore包含私人和敏感信息。 |
javax.net.ssl.trustStore 是用来指定TrustStore的。 |
javax.net.ssl.keyStore 用于指定Keystore。 |
TrustStore的设置对于客户端的成功连接是必需的。 | 当在SSL上设置服务器端时,需要Keystore。 |
TrustStore存储其他人的凭证。 | 密钥库存储证书。 |
TrustStore存储所信任的外部系统的证书。 | 钥匙库保存你的应用程序的证书。 |
TrustStore的密码是由Djavax.net.ssl.trustStorePassword 扩展给出的。 |
KeyStore密码由以下扩展Djavax.net.ssl.keyStorePassword 给出。 |
TrustStore和TrustStore的密码存储在透明文件中,对所有人都是可见的。 | Keystore和钥匙密码以纯文本形式存储在一个文件中,只有相应组的成员可以阅读。 |