如何从 cacerts 中删除所有证书?
How to remove all certificates from cacerts?
我知道我可以使用
keytool -delete -alias alias -keystore .keystore
从证书存储中删除一些证书。但是我在 cacerts 中存储了 109 个证书:keytool -list result
如何一键删除?或者,换句话说,如何清除 cacerts 存储?
keytool
没有 一个 命令来删除密钥库中的所有条目。您必须采取一些变通办法才能实现这一目标。
您可以通过使用 KeyStore
api:
编写一个简单的 Java 代码来实现
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
密钥库文件时使用密钥对创建密钥库。
keytool -genkeypair -keystore cacerts -storepass changeit
- 删除最初创建的密钥对条目。
keytool -delete -keystore cacerts -storepass changeit -alias mykey
由于 cacerts 是默认密钥库,您无需在 keytool 命令中指定其他属性,让 java 为您处理默认值。现在你应该有一个空的 cacerts 密钥库。
我知道我可以使用
keytool -delete -alias alias -keystore .keystore
从证书存储中删除一些证书。但是我在 cacerts 中存储了 109 个证书:keytool -list result
如何一键删除?或者,换句话说,如何清除 cacerts 存储?
keytool
没有 一个 命令来删除密钥库中的所有条目。您必须采取一些变通办法才能实现这一目标。
您可以通过使用 KeyStore
api:
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
密钥库文件时使用密钥对创建密钥库。
keytool -genkeypair -keystore cacerts -storepass changeit
- 删除最初创建的密钥对条目。
keytool -delete -keystore cacerts -storepass changeit -alias mykey
由于 cacerts 是默认密钥库,您无需在 keytool 命令中指定其他属性,让 java 为您处理默认值。现在你应该有一个空的 cacerts 密钥库。