+-

我想知道如何在 Java中以编程方式而不是使用keytool重命名密钥库的别名.
我有一个包含特定别名的java.security.KeyStore对象.如何重命名?
最佳答案
KeyStore API不提供别名的重命名操作.但是您可以做的是:
>保存要重命名的密钥库条目的内容(密钥对,证书).
>删除条目.
>使用保存的内容和新别名创建一个新条目.
作为Java代码:
Key privateKey = keyStore.getKey(alias, password.toCharArray());
Certificate[] certs = keyStore.getCertificateChain(alias);
keyStore.setKeyEntry(newAlias, privateKey, password.toCharArray(), certs);
keyStore.deleteEntry(alias);
当然,如果私钥存储在硬件设备(智能卡或HSM)上,因此无法读取,则此方法不起作用.
如果密钥库条目包含受信任的证书,则代码看起来有些不同:
Certificate cert = keyStore.getCertificate(alias);
keyStore.setCertificateEntry(newAlias, cert);
keyStore.deleteEntry(alias);
点击查看更多相关文章
转载注明原文:通过Java重命名JKS别名 - 乐贴网