Met*_*002 35 java keystore jks
所以,我遇到了LDAP问题.我有一个集成测试用例,希望可以解决,但它目前遇到SSL握手的LDAPS安全问题.
我能够使用Apache Directory Studio连接到LDAPS,并且已将密钥库下载到文件"permanent.jks"中.
没关系,但我希望我的集成测试(使用JRE驻留在Eclipse中)能够使用此密钥库连接到LDAP服务器.
如何将此密钥库导入JRE以供自己使用?
Met*_*002 44
好的,所以这是我的过程:
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所说,别名不能存在于您的密钥库中.
qwe*_*guy 29
您可以将所有别名从一个密钥库批量导入到另一个密钥库:
keytool -importkeystore -srckeystore source.jks -destkeystore dest.jks
Run Code Online (Sandbox Code Playgroud)
Pau*_*ald 26
要加载KeyStore,您需要告诉它密钥库的类型(可能是jceks),提供输入流和密码.然后,您可以这样加载它:
KeyStore ks = KeyStore.getInstance(TYPE_OF_KEYSTORE);
ks.load(new FileInputStream(PATH_TO_KEYSTORE), PASSWORD);
Run Code Online (Sandbox Code Playgroud)
这可能会引发KeyStoreException,因此如果您愿意,可以将其包围在try块中,或者重新抛出.请记住,密钥库可以包含多个密钥,因此您需要使用别名查找密钥,这是带有对称密钥的示例:
SecretKeyEntry entry = (KeyStore.SecretKeyEntry)ks.getEntry(SOME_ALIAS,new KeyStore.PasswordProtection(SOME_PASSWORD));
SecretKey someKey = entry.getSecretKey();
Run Code Online (Sandbox Code Playgroud)