46

所以,我在使用 LDAP 时遇到了问题。我有一个集成测试用例,希望可以解决,但它目前遇到了 SSL 握手的 LDAPS 安全问题。

我能够使用 Apache Directory Studio 连接到 LDAPS,并且它已将密钥库下载到文件“permanent.jks”中。

没关系,但我希望使用 JRE 驻留在 Eclipse 中的集成测试能够使用此密钥库连接到 LDAP 服务器。

如何获取此密钥库并将其导入 JRE 以供自己使用?

4

3 回答 3

59

好的,这是我的过程:

keytool -list -v -keystore permanent.jks- 给我取了别名。

keytool -export -alias alias_name -file certificate_name -keystore permanent.jks- 让我获得要导入的证书。

然后我可以使用 keytool 导入它:

keytool -import -alias alias_name -file certificate_name -keystore keystore location

正如@Christian Bongiorno 所说,别名不能存在于您的密钥库中。

于 2011-10-18T19:29:27.237 回答
51

您可以将所有别名从一个密钥库批量导入到另一个:

keytool -importkeystore -srckeystore source.jks -destkeystore dest.jks
于 2016-03-23T10:18:55.800 回答
28

要加载 KeyStore,您需要告诉它它是密钥库的类型(可能是 jceks),提供输入流和密码。然后,您可以像这样加载它:

KeyStore ks  = KeyStore.getInstance(TYPE_OF_KEYSTORE);
ks.load(new FileInputStream(PATH_TO_KEYSTORE), PASSWORD);

这可能会抛出 KeyStoreException,因此您可以根据需要将其包围在 try 块中,或者重新抛出。请记住,密钥库可以包含多个密钥,因此您需要使用别名查找密钥,这是一个使用对称密钥的示例:

SecretKeyEntry entry = (KeyStore.SecretKeyEntry)ks.getEntry(SOME_ALIAS,new KeyStore.PasswordProtection(SOME_PASSWORD));
SecretKey someKey = entry.getSecretKey();
于 2011-10-18T19:25:14.270 回答