我知道我可能会用
keytool -delete -alias alias -keystore .keystore若要从证书存储中删除某些证书,请执行以下操作。但是我在cacerts中存储了109个证书:keytool -list result
如何使用一条命令删除它们?或者,换句话说,您如何清除cacerts存储?
发布于 2018-01-24 23:28:06
keytool没有一个命令可以删除密钥库中的所有条目。要实现这一点,您必须做一些变通工作。
您可以使用Java编写一个简单的KeyStore代码来完成此操作:
KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType());
ks.load(new FileInputStream(new File("KEYSTORE_PATH")), "changeit".toCharArray());
Enumeration<String> aliases = ks.aliases();
while (aliases.hasMoreElements())
{
String alias = aliases.nextElement();
ks.deleteEntry(alias);
}
ks.store(new FileOutputStream(new File("KEYSTORE_PATH")), "changeit".toCharArray());(或)
创建一个类似的存储库,因为您已经知道cacerts密钥库的类型(这里是次要的解决方法)。
cacerts密钥库文件时使用密钥对创建KeyStore。密钥工具-genkeypair -keystore cacerts -storepass changeit
密钥工具-delete -keystore cacerts -storepass changeit -alias我的密钥
因为cacerts是默认的keystore,所以您不需要在keytool命令中指定其他属性,让java为您处理默认值。现在您应该有一个空的cacerts密钥库。
https://stackoverflow.com/questions/48417771
复制相似问题