【发布时间】:2015-02-07 21:56:21
【问题描述】:
密钥库、信任库和证书之间的关系是什么?这些工具是否是某些软件专有的?我可以获得哪些文献来获取有关这些工具以及它们如何在更广泛的背景下使用的更多信息?
谢谢!
【问题讨论】:
-
通过搜索 SSL 握手或 SSL 协议的详细信息,可以找到有关密钥存储和信任存储(尤其是在更广泛的上下文中)使用的更多信息。
标签: ssl certificate keystore truststore
密钥库、信任库和证书之间的关系是什么?这些工具是否是某些软件专有的?我可以获得哪些文献来获取有关这些工具以及它们如何在更广泛的背景下使用的更多信息?
谢谢!
【问题讨论】:
标签: ssl certificate keystore truststore
据我所知,密钥库和信任库非常相似,它们都存储证书/公钥。唯一的区别是信任库存储 CA(证书颁发机构)的密钥,而密钥库存储由 CA 认证的网站的密钥。因此,密钥库的使用/更新频率高于信任库(CA 的数量没有网站多)。
PS:这些不是工具,它们(信任库、密钥库)只是加密文件。
【讨论】:
存储:keyStore 通常持有私钥/公钥,TrustStore 仅存储公钥并代表受信任方的列表,即 CA
目的:在 SSL 握手中,TrustStore 的目的是验证凭据,keyStore 的目的是提供凭据。
keyStore 用于存储您的凭据(服务器或客户端),即私钥和证书,而TrustStore 用于存储其他凭据(来自 CA 的证书) 包含当远程方出示其证书时您愿意信任的 CA 证书。
TrustStore 和keyStore 在构造和结构方面非常相似,因为它们都由keytool 命令管理(二进制文件在JAVA_HOME/bin 中安装JDK)。
JAVA_HOME/JRE/Security/cacerts 是一个TrustStore,其中 java 存储根 CA 的公共证书以进行身份验证,即它用于对对等方(即服务器)进行身份验证。在 Java 中,一个文件可以同时代表 KeyStore 和 TrustStore,但出于安全和维护原因,最好将私有凭证和公共凭证分开。
JAVA_HOME/bin/keytool 是一个管理密钥和证书的工具。
KeyStore 在 SSL 上设置服务器端时需要,它用于存储服务器的身份证书,该服务器将在连接时呈现给客户端,而客户端的信任存储设置必须包含才能建立连接工作。如果您浏览器 通过 SSL 连接到任何网站,它会根据其 TrustStore 验证服务器提供的证书。
【讨论】: