我有一个文件 ote.truststore,我使用 Keystore Explorer 5.1 设置了自定义密码,我将它用于在 Tomcat 7/Java 1.7 下运行的 API servlet。 我不明白的是,即使我没有在代码、配置或 ssl.properties 中的任何地方指定密码,servlet 如何设法打开文件。
我知道 servlet 正在打开正确的文件,因为我启用了 javax.net.debug.all,并且我可以在日志中看到它找到的可信 CA 证书(“CN=GeoTrust Primary Certification Authority - G3” ).
我验证了我可以将密码更改为任意随机字符串,并且 servlet 仍然打开信任库。我还验证了如果我删除文件并重新启动 servlet,我会得到“trustStore 是:没有可用的文件,使用空 keystore ”。在日志中。
JKS 格式中是否有内容表明密码不适用于信任库文件?这对我来说似乎很奇怪。当我尝试在未指定正确密码的情况下在 Keystore Explorer 中打开文件时,它会尽职地解密失败。
最佳答案
读取信任库不需要密码。不涉及私钥。
您仍然需要密码来修改信任库。此外,在读取信任库时,如果提供了密码,它可用于验证信任库的完整性。
引用 - http://bayou.io/release/0.9/javadoc/bayou/ssl/SslConf.html#trustStorePass-java.lang.String-
关于似乎无需指定密码即可访问 Java SSL 信任库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34732484/