如何以编程方式查找 JVM 的默认 TrustManager 正在使用的 java keystore 文件?
This question类似,但答案实际上都是关于它应该使用哪个 keystore 文件。我想在我的程序中显示 JVM 已加载的实际 keystore 文件。
更新:问题:“为什么我不知道?”答案是我的应用程序正在我无法控制的客户环境上运行,所以我不知道。
更新:问题:“没有默认 keystore ,但有默认信任库”:我已经更新了我的问题。我正在尝试了解默认信任库使用的 keystore 。
更新:这个问题背后的动力是我想在我的应用程序中显示哪些 keystore 需要更新。操作应用程序的管理员通常很难确定正在使用的正确 jvm,更不用说正确的 keystore 了。我想向管理员提供他们需要更新哪些 keystore 的线索。是的,我知道管理员“应该”了解很多有关 java 和 key 的知识,但他们可能不了解。
最佳答案
How do I programatically find what java keystore file my JVM's default TrustManager is using?
如果设置的话,它由javax.net.ssl.trustManager的内容给出,
,否则它是JRE文件夹中的lib/security/jssecacerts
文件(如果存在),否则它是lib/security/cacerts
文件。
这都是在JSSE Reference Guide中指定的。 .
The impetus behind this question is I want to dispay in my app what keystore needs updating.
我不知道为什么您认为 Java 提供的信任库文件需要更新,但您错了,除非您正在处理自签名证书,在这种情况下,真正的答案是“不需要”。
关于java - 如何找出 Java VM 实际加载的信任库文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25562494/