【发布时间】:2015-09-17 23:19:01
【问题描述】:
我一直在混合和匹配代码,尝试通过示例学习如何使用 KeyStore。
我有这个 createKeyStore 方法:
private static KeyStore createKeyStore(String fileName, String pw) throws Exception
{
File file = new File(fileName);
final KeyStore keyStore = KeyStore.getInstance("JCEKS");
if (file.exists())
{
// .keystore file already exists => load it
keyStore.load(new FileInputStream(file), pw.toCharArray());
}
else
{
// .keystore file not created yet => create it
keyStore.load(null, null);
keyStore.store(new FileOutputStream(fileName), pw.toCharArray());
}
return keyStore;
}`
它似乎工作,没有抛出任何错误。
然后我尝试通过以下方式访问代码:
KeyStore keystore = KeyStore.getInstance(KeyStore.getDefaultType());
keystore.load(new FileInputStream(keystorePath), pass.toCharArray());
String alias = "alias";
char[] password = pass.toCharArray();
Certificate cert = keystore.getCertificate(alias);
keystore.setCertificateEntry(alias, cert);
// Save the new keystore contents
FileOutputStream out = new FileOutputStream(keystoreFile);
keystore.store(out, password);
out.close();
但是我对 keystore.load 的调用会引发 Invalid Keystore Format 异常。 我尝试将 FileInputStream 替换为 null,但设置证书似乎会引发错误。
TL;DR:我只是想在这个密钥库中存储一些加密密钥,但我似乎无法正确访问它。
感谢阅读!
【问题讨论】:
标签: java exception exception-handling keystore