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