2012-04-26 47 views
16

Tôi cố gắng để chuyển đổi một tiêu chuẩn PKCS # 12 (đuôi .p12) lưu trữ chìa khóa vào một cửa hàng chủ chốt Java JKS với lệnh này:Điều gì gây ra lỗi keytool "Không thể giải mã mục nhập nội dung an toàn"?

keytool -importkeystore -srckeystore keystore.p12 -srcstoretype PKCS12 -deststoretype JKS -destkeystore keystore.jks

Người ta thất bại với:

keytool error: java.io.IOException: failed to decrypt safe contents entry: javax.crypto.BadPaddingException: Given final block not properly padded 

Đỗ bạn có bất kỳ ý tưởng làm thế nào để giải quyết vấn đề này?

+2

Dường như PCKS của bạn # 12 keystore bị hỏng. Bạn có thể xác minh nó bằng 'openssl pkcs12 ...'? – EJP

Trả lời

6

Cửa hàng khóa pkcs12 thực sự bị hỏng.

4

Tôi chưa từng thử làm điều này trước đây, nhưng tôi đã tìm thấy hướng dẫn trên google here.

thread hỏi một câu hỏi tương tự.

EDIT (Dựa trên nhận xét)

Dưới đây là toàn bộ nội dung của tài liệu tham khảo liên quan:

PFX/P12 để JKS (Java KeyStore)

Câu hỏi: Làm thế nào để chuyển chứng chỉ từ IIS/PFX (tệp .p12) sang JKS (Java KeyStore)?

Trả lời: keytool -importkeystore -srckeystore PFX_P12_FILE_NAME -srcstoretype pkcs12 -srcstorepass PFX_P12_FILE -srcalias SOURCE_ALIAS -destkeystore KEYSTORE_FILE -deststoretype jks -deststorepass PASSWORD -destalias ALIAS_NAME

Lưu ý: Để tìm srcalias, liệt kê các nội dung của tệp PFX/P12:

keytool -v -list -storetype pkcs12 -keystore PFX_P12_FILE> FILENAME.TXT Khi điều này ghi đầu ra của lệnh vào tệp có tên FILENAME.TXT.

25

Đôi khi lỗi này có triệu chứng khi sử dụng mật khẩu không chính xác cho khóa p12.

+0

Loại kho khóa pkcs12 không phân biệt giữa keypass và storepass. Vì vậy, trong trường hợp của tôi, tôi chỉ cần sử dụng storepass (và không phải là keypass) khi lấy khóa ... – Lonzak

1

tôi đã làm lệnh này (đối diện với bạn) để xuất khẩu một khóa riêng để pkcs12 từ JKS:

keytool -importkeystore -srckeystore DemoIdentity.jks -srcstoretype JKS -destkeystore demoidentity.p12 -deststoretype pkcs12

Nếu tôi rời khỏi "-srcstoretype JKS" có vẻ dư thừa, tệp demoidentity.p12 đã tạo cho tôi lỗi tương tự khi tôi cố liệt kê chi tiết trong keytool mặc dù lệnh trên đã chấp nhận mật khẩu và tạo tệp có vẻ đúng!

Đối với vấn đề của bạn, có lẽ bạn đã làm điều gì đó tương tự khi tạo keystore.p12.

2

Tôi đã gặp vấn đề tương tự hôm nay (BadPaddingException). Có vẻ như keytool có vấn đề với các ký tự nhất định trong mật khẩu. Tôi đã giải quyết nó bằng cách thêm dấu ngoặc kép xung quanh mật khẩu.

keytool -importkeystore -srckeystore PFX_P12_FILE_NAME -srcstoretype pkcs12 -srcstorepass "PFX_P12_FILE" -srcalias SOURCE_ALIAS -destkeystore KEYSTORE_FILE -deststoretype jks -deststorepass "PASSWORD" -destalias ALIAS_NAME

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