我正在尝试使用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,我已经将密钥库文件复制到我的应用程序的resources文件夹中. KEYSTORE_FILE_PATH的值为“/server.keystore”.
谢谢.