a Java Keystore and a Truststore
大多数情况下,使用SSL/TLS通信时,需要keystore和truststore文件
Java 8和之前是使用JKS文件格式,之后是PKCS12文件格式
Difference Between a Java Keystore and a Truststore
Keystore 通常持有标识我们的证书,而Truststore持有标识其他人的证书
Keystore
服务器在使用HTTPS协议时,将使用Keystore存放私钥条目、具有公钥的证书或仅存储秘密密钥。
在SSL握手期间,服务器从Keystore查找私钥,并将其对应的公钥和证书提供给客户端,客户端做自我认证的时候,也有Keystore。
私钥可以签名或解密数据,公钥可以验证或加密数据,密钥也可以执行这些功能。
Truststore
上一步提到服务器提供了公钥和证书,客户端在Truststore中查找相关的证书,如果外部服务器提供的证书或证书颁发机构不在客户端的Truststore,将无法成功建立SSL握手。
https://www.baeldung.com/java-keystore-truststore-difference