keytoolエラーキーストアが改ざんされたか、パスワードが正しくありません


191

ローカルマシンで証明書を生成しているときに次のエラーが発生します。

C:\Users\abc>keytool -genkey -alias tomcat -keyalg RSA
Enter keystore password:
keytool error: java.io.IOException: Keystore was tampered with, or password was incorrect

jdkバージョンにいくつかの問題があると思います。同僚のマシンで同じコマンドを実行したところ、問題なく動作しました。

入力を共有してください。


1
正しいパスワードを与えていますか?適切なディレクトリからコマンドを実行していますか?
dev2d 2013年

1
作成しているので、新しいパスワードを入力しています。どのディレクトリから実行する必要がありますか?
C4CodeE4Exe 2013年

keytool -genkeypair -alias tomcat -keyalg RSA -keystore D:\ keystore.jksこれを試してキーストアを生成し、keytool -export -alias mycert -keystore D:\ keystore.jks -file vorburger.cer
dev2d

「keytool -genkey -alias tomcat -keyalg RSA」の場合と同じ効果がありますか?
C4CodeE4Exe 2013年

このcerを生成する目的を教えてください。
dev2d 2013年

回答:


89

あなたの説明から、私はあなたがwindowsマシンを使っていて、あなたの家はabcであると思います

だから今:原因

このコマンドを実行すると

keytool -genkey -alias tomcat -keyalg RSA

明示的なキーストアを指定していないため、キーストアを生成しようとします(あなたの場合は、例外が発生して更新されるため)。C:\users\abc>.keystoreもちろん、バージョン(a新しいもの)。

解決

  1. 場所.keystoreから削除しC:\users\abc>てコマンドを実行してください

  2. または、新しいxyzkeystoreを作成する次のコマンドを試してください。

    keytool -genkey -keystore xyzkeystore -alias tomcat -keyalg RSA

注: どちらも同じように機能し-genkeyます-genkeypairが、現在は古いものを使用しています。


私は自分でそれを理解しましたが。「C:\ users \ abc>の場所から.keystoreを削除してコマンドを実行する」が正しい解決策です。
C4CodeE4Exe 2013

引数でキーストアパスを提供することは可能ですか?
user1767754 2014

2
既存のキーストアファイルを削除してから、keytool -genkey -alias key0-keyalg RSAコマンドを実行すると、新しいパスワードとその他のデータが要求されます。しかし、今でも、署名済みのAPKをビルドしようとすると、同じエラーメッセージ「キーストアが改ざんされたか、パスワードが正しくありません」が表示されます。ここでの問題は何ですか?

265

cacertsキーストアのデフォルトのパスワードを使用して解決しました: 'changeit'


haha ..なので、実際にはパスワードを新しいものに変更せず、デフォルトの作業:D
Muhammad Suleman '20

ありがとう:) .. itは私の最後で機能しました..私は.cerファイルのエクスポートに使用したパスワードを使用していました..
Danyal Sandeelo

私のために働いた。ありがとう!
同僚

157

この回答は、新しいMacユーザーに役立ちます(Linuxで機能する、Window 7 64ビットも)。

Macで空のパスワードが機能しました。(以下の行をターミナルに貼り付けます)

keytool -list -v -keystore ~/.android/debug.keystore

それが求められたとき

Enter keystore password:  

Enterボタンを押すだけです(何も入力しないでください)。

debug.keystore プロジェクトベースのキーストアファイル用ではなく、デフォルトファイル用であることを確認してください(このためにパスワードが変更される場合があります)。

MacOS Sierra 10.10+でも動作します。

聞いたところ、Linux環境でも動作します。Linuxではまだテストしていません。


1
ありがとう。デバッグキーストア用のWindows 10で機能しました
Vinayak Singh

11

パスワードにchangeitを使用することも重要です。

このコマンドは最終的に私のために(突堤で)機能しました:

 keytool -genkey -keyalg RSA -alias selfsigned -keystore keystore.jks -storepass changeit -validity 360 -keysize 2048

11

Tomcat 8.5では、属性の正しい名前を書き込むように注意してください。これはserver.xmlの私のコードです:

<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
           maxThreads="150" SSLEnabled="true">
    <SSLHostConfig>
        <Certificate certificateKeystoreFile="conf/keystore" certificateKeystorePassword="mypassword" type="RSA"/>
    </SSLHostConfig>
</Connector>

あなたは訪問することができhttps://tomcat.apache.org/tomcat-8.5-doc/config/http.htmlをすべての属性を確認します


1
パスワードの参照元を指摘していただきありがとうございます。:)
N00b Pr0grammer 2018年



4

Windowsで動作します

コマンドプロンプトを開きます(Windowsキー+ Rを押してから、表示されるダイアログボックスに引用符なしで「cmd」と入力し、Enterキーを押します)。

次に、以下のコードスニフを入力します。

  1. cd C:\ Program Files \ Java \ jdk1.7.0_25 \ bin

次に、次のコマンドを入力します

  1. keytool -list -keystore "C:/ Documents and Settings / Your Name / .android / debug.keystore"

次に、キーストアのパスワードを要求します。デフォルトのパスワードは「android」タイプで、Enterキーを押すか、Enterキーを押すだけで「DONT TYPE ANY PASSWORD」になります。


3

ホームフォルダを確認してください~/.gradle/gradle.properties。場合によってはgradle.properties、ホームディレクトリにある場合、そこから詳細を取得することがあります。それを変更するか、ファイルを削除できます。次に、ローカルフォルダーから必要な詳細を取得します。


0

このページのアドバイスを要約すると、次のようになりました。

keytool -genkeypair -keystore ~/.android/release.keystore -alias <my_alias> -storepass <my_cert_pass> -keyalg RSA

次に、自分のエイリアスの名前、組織、場所、およびパスワードに関する一連の質問を受けました。


0

keytoolエラー:java.io.IOException:キーストアが改ざんされたか、パスワードが正しくありません

キーストアパスC:\ MyWorks \ mykeystoreC:\ MyWorks \ mykeystore.keystoreに変更すると、問題が解決しました


1
最初のパス「C:\ MyWorks \ mykeystore」はキーストアではありません。
Jorgesys


0

この問題を修正するには、出力ファイルを削除して、コマンドを再度実行します。以前のファイルを上書きしないことがわかりました。tomcatで証明書を暗号化しようとすると、この問題が発生しました


0
 [root@localhost Certificate]# openssl pkcs12 -export -in 
 /opt/Certificate/115c99f4c5aa98f5.crt -inkey /opt/Certificate/ravi.in.key -certfile 
/opt/Certificate/gd_bundle-g2-g1.crt -out RaviNew.p12

Enter Export Password: <Password>
Verifying - Enter Export Password: <Password>

注:-エクスポートPasworrdは、JKSファイルを作成する必要があるため、どこにでも書き留めてください(作成するパスワードの選択によって異なります)。

  keytool -importkeystore -srckeystore DigiEduNew.p12 -srcstoretype pkcs12 -destkeystore finaldigiEdu.jks -deststoretype JKS
  Importing keystore DigiEduNew.p12 to finaldigiEdu.jks...
  Enter destination keystore password: <Any Password >
  Re-enter new password: <Any Password >
  Enter source keystore password: <.P12 Password >
  Entry for alias 1 successfully imported.
  Import command completed:  1 entries successfully imported, 0 entries failed or 
  cancelled



 Warning:
 The JKS keystore uses a proprietary format. It is recommended to migrate to PKCS12 
 which is an industry standard format using "keytool -importkeystore -srckeystore 
 finaldigiEdu.jks -destkeystore finaldigiEdu.jks -deststoretype pkcs12".

0

私にとっては、パスワードをアラビア語の文字から英語の文字に変更することで解決しましたが、最初にフォルダーに移動して生成されたキーを削除すると機能しました。


0

このガイドに従ってFlutterアプリの署名に取り組んでいる場合は、Androidアプリビルドしてリリースし、このエラーが発生します。この回答がお役に立てば幸いです。

私の場合、key.jksを保存するパスを変更しました。そのパスに既存のファイルがあったので、これは私に起こりました。

keytool -genkey -v -keystore ~/key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key

このコマンドは、key.jksファイルをホームディレクトリに保存します。それを別の場所に保管するには、-keystoreパラメーターに渡す引数を変更します。

私の場合、

keytool -genkey -v -keystore /Users/Y/Desktop/X/key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias keyYour

つまり、X-ユーザー名とY名フォルダ名

次に、キーストアのパスワード入力するよう求められます:新しいパスワード再入力します:。ここでは、任意のパスワードを使用できます。

ただし、キーストアファイルは非公開にしてください。パブリックソース管理にチェックインしないでください。


0

Xamarin Forms 4.7とVisual Studio 2019 16.7.0 Preview 3.1の私の場合、問題は最近更新されたAndroidビルドツール(apksigner)とJDKのバージョンの不一致でした。JDKを最新のものに更新し、[ツール]-> [オプション]-> [Xamarin]-> [Android設定]で新しいJDKパスを指定しました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.