kesalahan keytool Keystore dirusak, atau kata sandi salah

191

Saya mendapatkan kesalahan berikut saat membuat sertifikat di mesin lokal saya.

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

Saya pikir ada beberapa masalah dalam versi jdk. Saya menjalankan perintah yang sama pada mesin rekan saya dan itu berfungsi dengan baik.

Silakan bagikan masukan Anda.

C4CodeE4Exe
sumber
1
apakah Anda memberikan kata sandi yang benar? dan menjalankan perintah dari direktori yang benar?
dev2d
1
Ketika saya membuatnya, jadi saya memasukkan kata sandi baru. Dari direktori mana saya harus menjalankannya?
C4CodeE4Exe
keytool -genkeypair -alias tomcat -keyalg RSA -keystore D: \ keystore.jks coba ini untuk membuat keystore dan kemudian ekspor ke seperti keytool -export -alias mycert -keystore D: \ keystore.jks -file vorburger.cer
dev2d
Bisakah Anda menjelaskan, apakah itu akan memiliki efek yang sama seperti dengan "keytool -genkey -alias tomcat -keyalg RSA".
C4CodeE4Exe
dapatkah Anda memberi tahu saya tujuan menghasilkan cer ini?
dev2d

Jawaban:

89

Dari deskripsi Anda, saya berasumsi Anda berada di mesin windows dan rumah Anda abc

Jadi Sekarang: Penyebab

Saat Anda menjalankan perintah ini

keytool -genkey -alias tomcat -keyalg RSA

karena Anda tidak menentukan keystore eksplisit, itu akan mencoba menghasilkan (dan dalam kasus Anda saat Anda mendapatkan pengecualian untuk memperbarui) keystore C:\users\abc>.keystoredan tentu saja Anda perlu memberikan kata sandi lama untuk .keystore sementara saya yakin Anda menyediakan versi Anda (a baru).

Larutan

  1. Hapus .keystoredari C:\users\abc>lokasi dan coba perintah

  2. atau coba perintah berikut yang akan membuat xyzkeystore baru:

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

Catatan: -genkey sudah tua sekarang tapi gunakan -genkeypairkeduanya bekerja sama

Kalher
sumber
Meskipun aku menemukannya sendiri. "Hapus .keystore dari lokasi C: \ users \ abc> dan coba perintah" adalah solusi yang tepat.
C4CodeE4Exe
Apakah mungkin untuk mengirimkan pass keystore dalam argumen?
user1767754
2
Saya telah menghapus file keystore yang ada dan kemudian mengikuti perintah keytool -genkey -ali key0-keyalg RSA, lalu meminta saya kata sandi baru dan data lainnya, saya berikan. Tapi masih sekarang, ketika saya mencoba membangun apk yang ditandatangani, itu menunjukkan pesan kesalahan yang sama - "Keystore dirusak, atau kata sandi salah" Apa masalahnya di sini?
266

Saya menyelesaikannya dengan menggunakan kata sandi default untuk cacerts keystore: 'changeit'

sarrdou
sumber
haha .. jadi sebenarnya itu tidak mengubah kata sandi menjadi yang baru, dan pekerjaan standar: D
Muhammad Suleman
terima kasih :) .. ini berhasil pada akhirnya..dan saya menggunakan kata sandi yang saya gunakan untuk mengekspor file
.cer
Bekerja untukku. Terima kasih!
Colefner
158

Jawaban ini akan sangat membantu bagi Pengguna Mac baru (Bekerja untuk Linux, Window 7 64 bit juga).

Kata Sandi Kosong berfungsi di mac saya. (rekatkan baris di bawah ini di terminal)

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

ketika diminta

Enter keystore password:  

cukup tekan tombol enter (jangan ketik apa pun). Itu harus bekerja.

Pastikan untuk debug.keystore file default , bukan untuk file keystore berbasis proyek Anda (Kata sandi mungkin berubah untuk ini).

Bekerja dengan baik untuk MacOS Sierra 10.10+ juga.

Saya dengar, itu bekerja untuk lingkungan linux juga. saya belum mengujinya di linux.

Zumry Mohamed
sumber
1
Terima kasih. Ini bekerja pada windows 10 saya untuk debug keystore
Vinayak Singh
11

Menggunakan changeit untuk kata sandi juga penting.

Perintah ini akhirnya bekerja untuk saya (dengan dermaga):

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

Dalam kucing jantan 8.5 perhatikan untuk menulis nama atribut yang benar. Ini adalah kode saya di 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>

Anda dapat mengunjungi https://tomcat.apache.org/tomcat-8.5-doc/config/http.html untuk melihat semua atribut

gopeca
sumber
1
Terima kasih telah menunjukkan dari mana kata sandi dirujuk! :)
N00b Pr0grammer
7

Saya telah mengatasi masalah ini dengan menggunakan kata sandi " changeit " default .

tapas talukder
sumber
4

Bekerja di Windows

buka command prompt (tekan Windows Key + R lalu ketik "cmd" tanpa kutip di kotak dialog yang muncul dan kemudian tekan Enter Key).

lalu ketik kode sniff di bawah ini:

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

kemudian ketik perintah berikut

  1. keytool -list -keystore "C: / Dokumen dan Pengaturan / Nama Anda / .android / debug.keystore"

Maka akan meminta kata sandi Keystore sekarang. Kata sandi default adalah tipe "android" dan masukkan atau tekan saja "DONT TYPE ANY PASSWORD".

Avinash Shinde
sumber
3

Periksa folder rumah Anda ~/.gradle/gradle.properties. Terkadang jika Anda memiliki gradle.propertiesdi direktori home dibutuhkan rincian dari sana. Anda dapat mengubah itu atau menghapus file. Maka itu akan mengambil detail yang diperlukan dari folder lokal Anda.

Ankit Sinha
sumber
1

Jika Anda berupaya menandatangani Aplikasi Flutter Anda dengan mengikuti panduan ini Bangun dan lepaskan aplikasi Android dan jalankan galat ini. Saya harap jawaban ini membantu Anda.

Dalam kasus saya, saya mengubah jalur untuk menyimpan key.jks saya. Ini terjadi pada saya karena saya ada file yang ada di jalur itu.

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

Perintah ini menyimpan file key.jks di direktori home Anda. Untuk menyimpannya di tempat lain, ubah argumen yang Anda berikan ke parameter -keystore.

Dalam kasus saya,

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

yaitu X - Nama pengguna dan nama folder Y

Kemudian Anda akan diminta untuk Masukkan password keystore: dan Re-masukkan password baru: . Di sini Anda dapat menggunakan kata sandi apa pun yang Anda inginkan.

Namun, jaga file keystore tetap pribadi; jangan periksa ke kontrol sumber publik!

Abel Tilahun
sumber
0

Merangkum saran dari halaman ini, saya selesai dengan yang berikut:

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

Lalu saya mendapat serangkaian pertanyaan tentang nama, organisasi, lokasi, dan kata sandi untuk alias saya.

GoRGon
sumber
0

kesalahan keytool: java.io.IOException: Keystore dirusak, atau kata sandi salah

Saya memecahkan masalah saya ketika saya mengubah jalur keystore C: \ MyWorks \ mykeystore ke C: \ MyWorks \ mykeystore.keystore .

CLIFFORD PY
sumber
1
jalur pertama "C: \ MyWorks \ mykeystore" bukan keystore.
Jorgesys
0

Dalam kasus saya, saya perlu memiliki rootakses.

Alex Po
sumber
0

Saya memperbaiki masalah ini dengan menghapus file output dan menjalankan perintah lagi. Ternyata itu TIDAK menimpa file sebelumnya. Saya mengalami masalah ini saat memperbarui sertifikat enkripsi tomcat yang diizinkan

gimp3695
sumber
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>

Catatan: - Di atas Ekspor Pasworrd tuliskan di mana saja karena harus membuat file JKS (Tergantung pilihan Anda, kata sandi apa yang ingin Anda buat)

  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".
Ravi Tyagi
sumber
0

Bagi saya, saya menyelesaikannya dengan mengubah kata sandi dari huruf Arab ke huruf Inggris, tetapi pertama-tama saya pergi ke folder dan menghapus kunci yang dihasilkan kemudian berfungsi.

Mohammed Salim
sumber
0

Dalam kasus saya dengan Xamarin Forms 4.7 dan Visual Studio 2019 16.7.0 Pratinjau 3.1, masalahnya adalah ketidakcocokan versi Android Build tools (apksigner) dan JDK yang baru-baru ini diperbarui. Diperbarui JDK untuk terbaru dan menunjuk jalur JDK baru pada Tools-> Pilihan-> Xamarin-> Pengaturan Android, dan itu bekerja.

Mehmet AVŞAR
sumber