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

Sub*_*shi 8 java ssl keytool

我试图通过keytool命令删除已导入的证书

 keytool -delete -noprompt -alias "initcert" -keystore keycloak.jks
Run Code Online (Sandbox Code Playgroud)

但要低于例外

keytool错误:java.lang.Exception:密钥库文件不存在:keycloak.jks

同样的问题

keytool -delete  -alias "initcert" -keystore keycloak.cer
Run Code Online (Sandbox Code Playgroud)

问题

keytool错误:java.lang.Exception:密钥库文件不存在: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"
Run Code Online (Sandbox Code Playgroud)

但再次结束

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

小智 9

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

keytool -delete -noprompt -alias "initcert" -keystore "C:\Path\to\your\keystore\keycloak.jks"
Run Code Online (Sandbox Code Playgroud)

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

keytool -list -keystore "C:\Program Files\Java\jdk1.8.0_152\jre\lib\security\cacerts"
Run Code Online (Sandbox Code Playgroud)

并删除它:

keytool -delete -noprompt -trustcacerts -alias "initcert" -keystore "C:\Program Files\Java\jdk1.8.0_152\jre\lib\security\cacerts"
Run Code Online (Sandbox Code Playgroud)

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

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

keytool错误:java.io.FileNotFoundException:C:\ Path \ to \ your \ keystore \ keycloak.jks(权限被拒绝)

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


Pra*_*een 5

您可以使用KeyStore Explorer来检查是否存在并轻松管理您的证书,

KeyStore Explorer下载链接

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

  • 用于 Java 命令行实用程序 keytool 和 jarsigner 的有用开源 GUI 工具 (2认同)