gpt4 book ai didi

java - 加载 keystore 文件,找不到别名

转载 作者:搜寻专家 更新时间:2023-11-01 02:25:43 27 4
gpt4 key购买 nike

我正在尝试使用 KeyStore 从 keystore 中获取信息。我已经使用此命令生成了 keystore :

keytool -genkey -alias server -keyalg RSA -keystore server.keystore -validity 365 采取 this页。

检查其信息 keytool -list -v -keystore server.keystore 我得到以下信息:

Alias name: server
Creation date: Apr 30, 2014
Entry type: PrivateKeyEntry
Certificate chain length: 1
Certificate[1]:
(other info here)

使用这个命令:keytool -list -keystore server.keystore -alias server 我得到这个:

server, Apr 30, 2014, PrivateKeyEntry, Certificate fingerprint (SHA1): 28:65:5B:0C:B3:3C:C9:AA:F1:7C:CE:91:23:77:DD:0D:F8:54:70:B9

现在,我的 java 代码:

keyStore = KeyStore.getInstance(KeyStore.getDefaultType());
keyStore.load(getClass().getResourceAsStream(KEYSTORE_FILE_PATH), "myPass".toCharArray());
keyStore.getCertificate("server").getPublicKey().getEncoded(); //here I get a null pointer exception - keystore.getCertificate("server") returns null.

执行 keyStore.aliases() 返回一个 EmptyEnumeration。

该应用程序使用 maven、java ee 7,我已将 keystore 文件复制到我的应用程序的资源文件夹中。 KEYSTORE_FILE_PATH 的值为“/server.keystore”。

谢谢。

最佳答案

Class.getResourceAsStream()当没有指定名称的资源时,返回 nullKeyStore.load()当传递一个 null 输入流时,将 key 存储重置为空状态。

这意味着在运行时您的代码找不到 keystore 资源并静默地处理空 keystore 。

  • 添加一个保护条件,检查 getResourceAsStream() 在将值传递给 KeyStore.load() 之前返回非空值。
  • 在 maven 中检查您的代码和构建/打包过程,以确保 keystore 文件位于正确的位置。

some questions about getResourceAsStream() 可以为您提供帮助。

关于java - 加载 keystore 文件,找不到别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23396290/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com