lỗi keytool Keystore bị giả mạo hoặc mật khẩu không chính xác


191

Tôi đang gặp lỗi sau khi tạo chứng chỉ trên máy cục bộ của mình.

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

Tôi nghĩ rằng có một số vấn đề trong phiên bản jdk. Tôi đã chạy lệnh tương tự trên máy trường đại học của tôi và nó đang hoạt động tốt.

Hãy chia sẻ đầu vào của bạn.


1
bạn đang cung cấp mật khẩu chính xác? và chạy lệnh từ thư mục thích hợp?
dev2d

1
Khi tôi đang tạo nó, vì vậy tôi đang nhập một mật khẩu mới. Tôi nên chạy thư mục nào?
C4CodeE4Exe

keytool -genkeypair -alias tomcat -keyalg RSA -keystore D: \ keystore.jks thử loại này để tạo keystore và sau đó xuất khẩu cer như keytool -Xuất -alias mycert -keystore D: \ keystore.jks -file vorburger.cer
dev2d

Bạn có thể vui lòng làm rõ, nó sẽ có tác dụng tương tự như với "keytool -genkey -alias tomcat -keyalg RSA".
C4CodeE4Exe

bạn có thể cho tôi biết mục đích của việc tạo ra cer này?
dev2d

Câu trả lời:


89

Từ mô tả của bạn, tôi giả sử bạn đang ở trên máy windows và nhà của bạn là abc

Vì vậy, bây giờ: Nguyên nhân

Khi bạn chạy lệnh này

keytool -genkey -alias tomcat -keyalg RSA

bởi vì bạn không chỉ định kho lưu trữ khóa rõ ràng, nó sẽ cố gắng tạo (và trong trường hợp của bạn vì bạn đang có ngoại lệ để cập nhật) kho khóa C:\users\abc>.keystorevà tất nhiên bạn cần cung cấp mật khẩu cũ cho .keystore trong khi tôi tin rằng bạn đang cung cấp phiên bản của mình (a cái mới).

Giải pháp

  1. Xóa .keystorekhỏi C:\users\abc>vị trí và thử lệnh

  2. hoặc thử làm theo lệnh sẽ tạo xyzkeystore mới:

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

Lưu ý: -genkey bây giờ đã cũ hơn là sử dụng -genkeypairmặc dù cả hai đều hoạt động như nhau.


Mặc dù tôi đã tìm ra nó từ chính tôi. "Xóa .keystore khỏi vị trí C: \ users \ abc> và thử lệnh" là giải pháp phù hợp.
C4CodeE4Exe

Có thể phân phối khóa kho trong các đối số không?
dùng1767754

2
Tôi đã xóa tệp kho khóa hiện có và sau đó thực hiện theo lệnh keytool -genkey -alias key0-keyache RSA, sau đó nó hỏi tôi mật khẩu mới và dữ liệu khác, tôi đã cung cấp. Nhưng bây giờ, khi tôi cố gắng xây dựng apk đã ký, nó sẽ hiển thị cùng một thông báo lỗi - "Keystore bị giả mạo hoặc mật khẩu không chính xác" Vấn đề ở đây là gì?

265

Tôi đã giải quyết nó bằng cách sử dụng mật khẩu mặc định cho kho khóa của cacerts: 'changeit'


haha .. vì vậy thực sự nó không thay đổi mật khẩu thành mật khẩu mới và công việc mặc định: D
Muhammad Suleman

cảm ơn :) .. nó đã hoạt động ở cuối của tôi..và tôi đã sử dụng mật khẩu mà tôi đã sử dụng để xuất tệp .cer ..
Danyal Sandeelo

Đã làm cho tôi. Cảm ơn!
colefner

157

Câu trả lời này sẽ hữu ích cho Người dùng Mac mới (Hoạt động cho Linux, Window 7 64 bit).

Mật khẩu trống làm việc trong máy mac của tôi. (dán dòng dưới đây trong thiết bị đầu cuối)

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

khi nó nhắc

Enter keystore password:  

chỉ cần nhấn nút Enter (Không gõ bất cứ thứ gì). Nó sẽ hoạt động.

Hãy chắc chắn rằng nó là mặc định debug.keystore tệp đó là tệp , không phải cho tệp kho khóa dựa trên dự án của bạn (Mật khẩu có thể thay đổi cho điều này).

Hoạt động tốt cho MacOS Sierra 10.10+.

Tôi nghe nói, nó hoạt động cho môi trường linux là tốt. Tôi chưa thử nghiệm điều đó trong linux.


1
Cảm ơn. Nó hoạt động trên windows 10 của tôi cho kho khóa gỡ lỗi
Vinayak Singh

11

Sử dụng thay đổi cho mật khẩu cũng quan trọng.

Lệnh này cuối cùng đã làm việc cho tôi (với cầu tàu):

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

11

Trong tomcat 8,5 chú ý viết tên chính xác của các thuộc tính. Đây là mã của tôi trên 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>

Bạn có thể truy cập https://tomcat.apache.org/tomcat-8.5-doc/config/http.html để xem tất cả các thuộc tính


1
Cảm ơn đã chỉ ra nơi mật khẩu đang được giới thiệu! :)
N00b Pr0grammer


7

Tôi có giải quyết vấn đề này bằng cách sử dụng mật khẩu mặc định " changeit ".


4

Hoạt động trên Windows

mở dấu nhắc lệnh (nhấn Windows Key + R, sau đó nhập "cmd" mà không có trích dẫn trong hộp thoại xuất hiện và sau đó nhấn Enter Key).

sau đó nhập mã sniff bên dưới:

  1. cd C: \ Tệp chương trình \ Java \ jdk1.7.0_25 \ bin

sau đó gõ lệnh sau

  1. keytool -list -keystore "C: / Tài liệu và Cài đặt / Tên của bạn / .android / debug.keystore"

Sau đó, nó sẽ yêu cầu mật khẩu Keystore ngay bây giờ. Mật khẩu mặc định là loại "android" và nhập hoặc chỉ cần nhấn enter "ĐỪNG LOẠI BẤT CỨ MẬT KHẨU".


3

Kiểm tra thư mục nhà của bạn ~/.gradle/gradle.properties. Đôi khi nếu bạn có gradle.propertiestrong thư mục nhà, nó sẽ lấy chi tiết từ đó. Hoặc bạn có thể thay đổi hoặc xóa các tập tin. Sau đó, nó sẽ lấy chi tiết cần thiết từ thư mục địa phương của bạn.


0

Tóm tắt những lời khuyên từ trang này, tôi đã hoàn thành với phần sau:

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

Sau đó, tôi nhận được một bộ câu hỏi liên quan đến tên, tổ chức, địa điểm và mật khẩu cho bí danh của mình.


0

lỗi keytool: java.io.IOException: Keystore bị giả mạo hoặc mật khẩu không chính xác

Tôi đã giải quyết vấn đề của mình khi tôi thay đổi đường dẫn kho khóa C: \ MyWorks \ mykeystore thành C: \ MyWorks \ mykeystore.keystore .


1
đường dẫn đầu tiên "C: \ MyWorks \ mykeystore" không phải là kho khóa.
Jorgesys

0

Trong trường hợp của tôi, tôi cần có rootquyền truy cập.


0

Tôi đã khắc phục vấn đề này bằng cách xóa tệp đầu ra và chạy lại lệnh. Hóa ra nó KHÔNG ghi đè lên tập tin trước đó. Tôi gặp vấn đề này khi gia hạn chứng chỉ mã hóa bằng 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>

Lưu ý: - Xuất trên Pasworrd ghi xuống bất cứ nơi nào vì phải tạo tệp JKS (Tùy thuộc vào lựa chọn của bạn về mật khẩu bạn muốn tạo)

  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

Đối với tôi, tôi đã giải quyết nó bằng cách thay đổi mật khẩu từ chữ cái Ả Rập sang chữ cái tiếng Anh, nhưng trước tiên tôi vào thư mục và xóa khóa được tạo sau đó nó hoạt động.


0

Nếu bạn đang làm việc để ký Ứng dụng Flutter của mình bằng cách làm theo hướng dẫn này, hãy xây dựng và phát hành ứng dụng Android và gặp phải lỗi này. Tôi hy vọng câu trả lời này sẽ giúp bạn.

Trong trường hợp của tôi, tôi đã thay đổi đường dẫn để lưu trữ key.jks của mình. Điều này xảy ra với tôi vì tôi đã có một tệp trong đường dẫn đó.

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

Lệnh này lưu trữ tệp key.jks trong thư mục chính của bạn. Để lưu trữ nó ở nơi khác, hãy thay đổi đối số bạn chuyển sang tham số -keystore.

Trong trường hợp của tôi,

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

tức là X - Tên người dùng và Y - tên thư mục

Sau đó, bạn sẽ được nhắc nhập mật khẩu lưu trữ khóa:nhập lại mật khẩu mới : . Ở đây bạn có thể sử dụng bất cứ mật khẩu nào bạn muốn.

Tuy nhiên, giữ tập tin kho khóa riêng tư; đừng kiểm tra nó vào kiểm soát nguồn công cộng!


0

Trong trường hợp của tôi với Xamarin Forms 4.7 và Visual Studio 2019 16.7.0 Preview 3.1, vấn đề là phiên bản không khớp với các công cụ Android Build (apksigner) và JDK được cập nhật gần đây. Đã cập nhật JDK mới nhất và chỉ đường dẫn JDK mới trên Công cụ-> Tùy chọn-> Xamarin-> Cài đặt Android và nó hoạt động.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.