Java 如何访问jvm默认密钥库?
我想使用java密钥存储来保存密钥和证书。有人能分享一些代码来帮助我吗?在KeyStore Javadocs页面中应该有足够的示例代码来帮助您开始: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等) 信托商店也有类似
- 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
但是,这并不意味着这些是默认的
SSLContext
使用的存储,因为也可以将默认的SSLContext
(自Java 6以来)更改为一个使用自定义信任管理器初始化的存储。(有关更多详细信息,请参阅)。下载者应首先尝试了解密钥库和信任库之间的区别,并阅读官方文档中的表格(第一个链接)。您可以使用javax.net.ssl.keystore
配置密钥库属性吗?默认的SSLContext
会使用它吗?那么,获得JVM默认密钥库(即使用javax.net.ssl.keystore等指定的密钥库)的唯一方法是自己读取这些系统属性并构建一个,还是可以通过编程获得它而不需要额外的工作呢?据我所知,正如Bruno在下面的回答中在JSSE参考指南中提到的,Java没有默认的密钥库(或者一些人称之为标识库)。不过有一个默认的信任库:jssecacers,如果存在的话。否则会在..jre/lib/security中插入cacerts/