似乎无需指定密码即可访问 Java SSL 信任库?

标签 java ssl truststore

我有一个文件 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/

相关文章:

java - 将自定义信任库添加到 java 中的 imaps

java - Intellij/Gradle 同步在公司代理之后失败

java - 在同一个 JVM 上设置多个信任库

java - hibernate/JPA : Get one (first) element of a OneToMany relationship

ios - 如何使用自签名证书为 TLS 创建 iOS NWConnection?

java - 如何使用 Gson 反序列化 XMLGregorianCalender?

javascript - 为什么 https.Agent 在通过 node-http-proxy 代理时抛出解析错误?

iOS NSURLErrorDomain 代码=-1200 "An SSL error has occurred and a secure connection to the server cannot be made."

java - 阶乘问题

java - 我的 Controller 在运行时工作,但 mockkmvc 测试失败,因为依赖项甚至不在类中