2011-02-07 30 views
12

tôi cố gắng tạo ra một sự tự chứng nhận tập tin keystore mớikeytool lỗi -genkey: file Keystore không tồn tại

Lệnh tôi sử dụng là:

keytool -genkey -selfcert -dname "cn=My Name, ou=Orga unit" -alias selfcertified -keypass somepass -keystore keystore.jks -storepass anotherpass -validity 365 

nhưng tôi luôn nhận được lỗi này gây phiền nhiễu:

keytool error: java.lang.Exception: Keystore file does not exist: keystore.jks 

Tôi không hiểu tại sao tôi gặp phải lỗi này. Lệnh trên sẽ tạo một kho khóa mới, vậy tại sao nó lại phàn nàn về một kho lưu trữ không tồn tại?

Trả lời

18

Tạo cặp khóa (và kho khóa mới) phải được thực hiện dưới dạng thao tác riêng để tạo chứng chỉ tự ký cho khóa đó.

ví dụ:

keytool -genkey -alias myKey -keystore store.jks 
keytool -selfcert -alias myKey -keystore store.jks 
+1

từ tài liệu trực tuyến keytool: Một kho khóa được tạo bất cứ khi nào bạn sử dụng lệnh -genkey, -import hoặc -identitydb để thêm dữ liệu vào kho khóa chưa tồn tại. (http://download.oracle.com/javase/1.4.2/docs/tooldocs/solaris/keytool.html). theo điều này, lệnh keytool sẽ tạo một kho khóa mới thay vì nói nó không tồn tại. bạn có thể plz cho một ví dụ về làm thế nào để thực hiện hai bước bạn đã đề cập? –

+0

@Chris Friedl - '-genkey' và' -selfcert' là các lệnh riêng biệt: bạn không thể thực hiện cả hai cùng một lúc. – OrangeDog

+0

cảm ơn! - hai lệnh riêng biệt đã làm nó cuối cùng. điều thú vị là, có một số trang web cung cấp hướng dẫn với hai lệnh trong một dòng như tôi đã viết ở trên. –

2

Run command prompt as Administrator và nó sẽ được thực hiện.

0

-selfcert tùy chọn đã được thực hiện lỗi thời trong keytool cho Java 6. Kiểm tra phần cuối của "Thay đổi" ở đây: Java 6 Keytool

Vì vậy cho Java 6 trở đi, thay thế -selfcert với -certreq

Các vấn đề liên quan