keystore.load()可以工作,但同一密钥库的loadkeymaterial()失败

qnzebej0  于 2021-08-20  发布在  Java
关注(0)|答案(0)|浏览(323)

我正在尝试对需要证书的axis2 api进行api调用。我将其导入位于/lib/security中的java密钥库。我验证了在几个方法中成功导入了证书(在方法上也是在下面的代码中,证书不为null)。
我可以使用默认密码从密钥库获取证书。但是我得到了不可恢复的密钥异常:当我尝试为sslcontext使用相同的密钥库和密码时,无法恢复密钥异常。有人能帮我吗?

  1. final char sep = File.separatorChar;
  2. File dir = new File(System.getProperty("java.home") + sep + "lib" + sep + "security");
  3. File file = new File(dir, "cacerts");
  4. InputStream localCertIn = new FileInputStream(file);
  5. String password = "changeit" ;
  6. KeyStore keystore = KeyStore.getInstance(KeyStore.getDefaultType());
  7. keystore.load(localCertIn, password.toCharArray());
  8. String alias = "alias name";
  9. X509Certificate certificate = (X509Certificate)keystore.getCertificate(alias);
  10. //Certificate is not null
  11. SSLContext sslContext = SSLContexts.custom()
  12. .loadKeyMaterial(keystore, password.toCharArray())
  13. .build();
  14. //Throws the following error

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题