web-dev-qa-db-ja.com

keytoolコマンドでインポート済みの証明書/エイリアスを削除するにはどうすればよいですか?

Keytoolコマンドですでにインポートされている証明書を削除しようとしています

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

しかし、例外を下回る

keytoolエラー:Java.lang.Exception:キーストアファイルが存在しません:keycloak.jks

と同じ問題

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

問題

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"

しかし、再び終わる

keytoolエラー:Java.lang.Exception:証明書はインポートされません、エイリアスは既に存在します

8
Subodh Joshi

KeyStore Explorerを使用して、存在するかどうかを確認し、証明書を簡単に管理できます。

KeyStore Explorerダウンロードリンク

エクスプローラーでキーストアファイルを開き、必要な処理を行ってから保存し直します。

5
Praveen

完全なキーストアパスを記述していないようです。コマンドは次のようになります。

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"

その後、証明書を再度インポートしても、エラーは表示されません。

最後に、このようなエラーが発生した場合、最後にもう1つ

keytoolエラー:Java.io.FileNotFoundException:C:\ Path\to\your\keystore\keycloak.jks(Permission denied)

管理者モードでコマンドウィンドウを実行する必要があります。

8
mardo