Làm cách nào để truy cập kho khóa Java không được bảo vệ bằng mật khẩu hoặc thay đổi mật khẩu?


121

Tôi đang cố gắng nhập chứng chỉ đáng tin cậy được chứng nhận vào kho khóa Java cacerts , nhưng tôi gặp sự cố. Tôi đã cố gắng liệt kê các chứng chỉ đáng tin cậy hiện có và có vẻ như kho khóa không được bảo vệ bằng mật khẩu.

$ keytool -list -keystore cacerts
Enter keystore password:

*****************  WARNING WARNING WARNING  *****************
* The integrity of the information stored in your keystore  *
* has NOT been verified!  In order to verify its integrity, *
* you must provide your keystore password.                  *
*****************  WARNING WARNING WARNING  *****************

Keystore type: JKS
Keystore provider: SUN

Your keystore contains 76 entries

Tôi đã cố gắng nhập một chứng chỉ đáng tin cậy:

$ keytool -importcert -alias "JiraCert" -file /root/c9ssl.crt -keystore /etc/java-6-sun/security/cacerts
Enter keystore password:  
Keystore password is too short - must be at least 6 characters
Enter keystore password:  
Keystore password is too short - must be at least 6 characters
Enter keystore password:  
Keystore password is too short - must be at least 6 characters
Too many failures - try later

Tôi cũng đã cố gắng thay đổi mật khẩu từ "none" thành một cái gì đó:

$ keytool -storepasswd -keystore cacerts.back
Enter keystore password:
Keystore password is too short - must be at least 6 characters
Enter keystore password:
Keystore password is too short - must be at least 6 characters
Enter keystore password:
Keystore password is too short - must be at least 6 characters
Too many failures - try later

Câu trả lời:


206

có nghĩa là kho khóa cacerts không được bảo vệ bằng mật khẩu

Đó là một giả định sai lầm. Nếu đọc kỹ hơn, bạn sẽ thấy rằng danh sách được cung cấp mà không xác minh tính toàn vẹn của kho khóa vì bạn không cung cấp mật khẩu. Danh sách không yêu cầu mật khẩu, nhưng kho khóa của bạn chắc chắn có mật khẩu, như được chỉ ra bởi:

Để xác minh tính toàn vẹn của nó, bạn phải cung cấp mật khẩu kho khóa của mình.

Mật khẩu cacerts mặc định của Java là "changeit", trừ khi bạn đang sử dụng máy Mac, ở đó nó là "changeme" cho đến một thời điểm nhất định. Rõ ràng với Mountain Lion (dựa trên các nhận xét và một câu trả lời khác ở đây), mật khẩu cho Mac hiện cũng là "changeit", có thể là do Oracle hiện cũng đang xử lý phân phối cho Mac JVM.


Cảm ơn! Tôi không thể hiểu tại sao lại có mật khẩu !!
Jesse Barnum

2
Vâng, cảm ơn. Thật là một mật khẩu mặc định khủng khiếp. Tôi cũng không thể hiểu nó là gì. Tôi vừa xóa tệp cacerts và thay thế nó bằng tệp của riêng tôi.
HeyWatchThis

3
Như datasmid nói dưới đây, mật khẩu Mac nếu bạn đang chạy Mountain Lion cũng là "changeit"
Niro

19
"Mật khẩu cacerts mặc định của Java là" changeit "": +1000 nếu tôi có thể! Cảm ơn Stackoverflow!
Neil Vass

55

Mật khẩu của kho khóa theo mặc định là: "changeit". Tôi đã thực hiện các lệnh của mình mà bạn đã nhập ở đây để nhập chứng chỉ. Tôi hy vọng bạn đã giải quyết được vấn đề của mình.



0

Truy cập vào kho khóa Java không được bảo vệ bằng mật khẩu và thay đổi mật khẩu có thể được thực hiện với sự trợ giúp của chính ngôn ngữ lập trình Java.

Bài viết đó chứa mã cho điều đó:

thetechawesomeness.ideasmatter.info

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.