如何访问jvm默认的KeyStore?

bha*_*988 7 java security jvm certificate

我想使用java密钥库来保存密钥和证书.任何人都可以分享一些代码来帮助我吗?

Chr*_*ite 6

KeyStore Javadocs 页面中应该有足够的示例代码来帮助您入门:

至于“默认”密钥库 - 我不确定是否存在这样的东西,通常您可以从文件中显式加载它,或者您可以使用以下系统属性对其进行配置:

  • javax.net.ssl.keyStore - 密钥库位置
  • javax.net.ssl.keyStorePassword - 密钥库密码
  • javax.net.ssl.keyStoreType - 密钥库类型(JKS、P12 等)

与信任商店类似:

  • javax.net.ssl.trustStore
  • javax.net.ssl.trustStorePassword
  • javax.net.ssl.trustStoreType

  • 因此,这是获取 JVM 默认密钥库(即使用 javax.net.ssl.keyStore 等指定的密钥库)来自己读取这些系统属性并构建一个的唯一方法,或者您可以通过编程方式获取它而不需要额外的工作? (2认同)

Bru*_*uno 5

Java 中没有默认的密钥库。这在JSSE 参考指南的定制部分中有记录。

默认信任存储是:

jssecacerts(如果存在)。否则,证书

然而,这并不意味着这些是默认使用的存储,因为也可以使用自定义信任管理器初始化的存储SSLContext来更改默认值(从 Java 6 开始)。SSLContext(有关更多详细信息,请参阅此答案)。