如何通过keytool命令删除已经导入的证书/别名?

2022-09-02 02:48:00

我正在尝试通过 keytool 命令删除已导入的证书

 keytool -delete -noprompt -alias "initcert" -keystore keycloak.jks

但低于例外

keytool error: java.lang.Exception: Keystore file 不存在: keycloak.jks

keytool -delete  -alias "initcert" -keystore keycloak.cer

问题

keytool error: java.lang.Exception: Keystore file 不存在: keycloak.cer

现在我正在尝试导入具有相同别名的证书

 keytool -import -noprompt -trustcacerts -alias "initcert" -file "C:\Code_Base\keycloak_certificates\keycloak_135.250.138.74_server\keycloak.cer" -keystore "C:\Program Files\Java\jdk1.8.0_152\jre\lib\security\cacerts"

但同样以结尾

keytool 错误:java.lang.异常:证书未导入,别名已存在


答案 1

您似乎没有编写完整的密钥库路径。该命令应如下所示:

keytool -delete -noprompt -alias "initcert" -keystore "C:\Path\to\your\keystore\keycloak.jks"

关于最后一个错误,正如其他人所指出的,“cacerts”与您已经导入证书的密钥斗篷不同。您可以使用以下命令检查您的别名是否在那里:

keytool -list -keystore "C:\Program Files\Java\jdk1.8.0_152\jre\lib\security\cacerts"

并删除它:

keytool -delete -noprompt -trustcacerts -alias "initcert" -keystore "C:\Program Files\Java\jdk1.8.0_152\jre\lib\security\cacerts"

然后,如果再次导入证书,则不会出现错误。

最后,最后一件事,如果有这样的错误

keytool error: java.io.FileNotFoundException: C:\Path\to\your\keystore\keycloak.jks (Permission deny)

您应该在管理员模式下执行命令窗口。


答案 2

您可以使用密钥库资源管理器来检查是否存在并轻松管理您的证书,

密钥库浏览器下载链接

只需使用资源管理器打开密钥库文件,执行所需的操作并将其保存回去即可。