Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何访问jvm默认密钥库?_Java_Security_Jvm_Certificate - Fatal编程技术网

Java 如何访问jvm默认密钥库?

Java 如何访问jvm默认密钥库?,java,security,jvm,certificate,Java,Security,Jvm,Certificate,我想使用java密钥存储来保存密钥和证书。有人能分享一些代码来帮助我吗?在KeyStore Javadocs页面中应该有足够的示例代码来帮助您开始: 至于“默认”密钥库-我不确定是否存在这样的东西,通常您可以从文件显式加载它,或者使用以下系统属性配置它: javax.net.ssl.keyStore-密钥库位置 javax.net.ssl.keyStorePassword-密钥库密码 javax.net.ssl.keyStoreType-密钥库类型(JKS、P12等) 信托商店也有类似

我想使用java密钥存储来保存密钥和证书。有人能分享一些代码来帮助我吗?

在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

Java中没有默认密钥库。这在中有记录

默认的信任存储是:

jssecacerts,如果存在。否则,卡塞特


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

下载者应首先尝试了解密钥库和信任库之间的区别,并阅读官方文档中的表格(第一个链接)。您可以使用
javax.net.ssl.keystore
配置密钥库属性吗?默认的
SSLContext
会使用它吗?那么,获得JVM默认密钥库(即使用javax.net.ssl.keystore等指定的密钥库)的唯一方法是自己读取这些系统属性并构建一个,还是可以通过编程获得它而不需要额外的工作呢?据我所知,正如Bruno在下面的回答中在JSSE参考指南中提到的,Java没有默认的密钥库(或者一些人称之为标识库)。不过有一个默认的信任库:jssecacers,如果存在的话。否则会在..jre/lib/security中插入cacerts/