首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从cacerts中删除所有证书?

如何从cacerts中删除所有证书?
EN

Stack Overflow用户
提问于 2018-01-24 16:21:47
回答 1查看 17.5K关注 0票数 4

我知道我可能会用

代码语言:javascript
复制
keytool -delete -alias alias -keystore .keystore

若要从证书存储中删除某些证书,请执行以下操作。但是我在cacerts中存储了109个证书:keytool -list result

如何使用一条命令删除它们?或者,换句话说,您如何清除cacerts存储?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-24 23:28:06

keytool没有一个命令可以删除密钥库中的所有条目。要实现这一点,您必须做一些变通工作。

您可以使用Java编写一个简单的KeyStore代码来完成此操作:

代码语言:javascript
复制
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密钥库的类型(这里是次要的解决方法)。

  1. 最初在创建cacerts密钥库文件时使用密钥对创建KeyStore。

密钥工具-genkeypair -keystore cacerts -storepass changeit

  1. 删除初始创建的密钥对条目。

密钥工具-delete -keystore cacerts -storepass changeit -alias我的密钥

因为cacerts是默认的keystore,所以您不需要在keytool命令中指定其他属性,让java为您处理默认值。现在您应该有一个空的cacerts密钥库。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48417771

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档