我知道JRE附带的cacerts文件是存储根CA证书的信任库,很多人也将该文件称为密钥库。但是,我对密钥库文件的理解是另一个文件,其中保存了私钥以供服务器自行进行身份验证。
然后,JAVA将私钥存储在哪里?还是密钥库文件的确切位置在哪里,是cacerts的同一文件吗?
此外,以下命令列出了所有根CA证书:
> keytool -list -storepass changeit -keystore "C:\Program Files\Java\jre1.8.0_191\lib\security\cacerts"
为什么在没有 -keystore 和 -storepass 标志的情况下,keytool无法列出根CA?
答案 0 :(得分:1)
为什么在没有 -keystore 和 -storepass 标志的情况下,keytool无法列出根CA?
从Java 9开始,它可以:
keytool -list -cacerts
只需在密码提示符下按Enter。
JAVA在哪里存储私钥?
Java 不在任何地方存储它们。
您将它们存储在密钥库文件中,在文件系统上的任何位置。然后,您告诉“服务器”它在哪里。
确切的操作方式取决于“服务器”是什么,例如对于Tomcat,您将在server.xml
文件中提供密钥库文件的路径。