2012-04-26 21 views
16

Próbuję przekonwertować standard PKCS # 12 (.p12) zachować klucz do magazynu kluczy Java JKS z tym poleceniem:Co powoduje błąd keytool "Nie można odszyfrować wpisu bezpiecznej zawartości"?

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

się niepowodzeniem z:

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

Do masz pomysł, jak rozwiązać ten problem?

+2

Wygląda swoimi PCKS # 12 kluczy jest uszkodzony. Czy możesz to zweryfikować za pomocą 'openssl pkcs12 ...'? – EJP

Odpowiedz

6

Plik kluczy pkcs12 był rzeczywiście uszkodzony.

4

Nigdy nie próbowałem tego zrobić wcześniej, ale znalazłem instrukcje w google here.

To pytanie znajduje się pod następującym adresem: thread.

EDIT (Na podstawie komentarzu)

Oto pełna treść połączonej odniesienia:

PFX/P12 do JKS (Java kluczy)

Pytanie: Jak to zrobić przenieść certyfikat z IIS/PFX (plik .p12) do JKS (Java KeyStore)?

Odpowiedź: keytool -importkeystore -srckeystore PFX_P12_FILE_NAME -srcstoretype pkcs12 -srcstorepass PFX_P12_FILE -srcalias SOURCE_ALIAS -destkeystore KEYSTORE_FILE -deststoretype JKS -deststorepass HASŁO -destalias Alias_Name

Uwaga: Aby znaleźć srcalias, podać wykaz zawartość pliku PFX/P12:

keytool -v -list -storetype pkcs12 -keystore PFX_P12_FILE> FILENAME.TXT Zapisuje wynik polecenia do pliku o nazwie FILENAME.TXT.

25

Czasami ten błąd jest symptomatyczny w przypadku użycia niepoprawnego hasła dla klucza p12.

+0

Typ magazynu kluczy pkcs12 nie rozróżnia funkcji keypass i storepass. Więc w moim przypadku po prostu musiałem użyć storepass (a nie keypass) podczas pobierania klucza ... – Lonzak

1

zrobiłem tego polecenia (przeciwnej do Ciebie), aby wyeksportować klucz prywatny do PKCS12 z JKS:

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

Jeśli zostawiłem pozornie nadmiarowy "-srcstoretype JKS", wygenerowany plik demoidentity.p12 dał mi ten sam błąd, gdy próbowałem wyświetlić szczegóły w keytool, mimo że powyższa komenda zaakceptowała hasła i wygenerowała plik pozornie poprawnie!

W przypadku Twojego problemu być może zrobiłeś coś podobnego podczas generowania pliku keystore.p12.

2

Miałem ten sam problem dzisiaj (BadPaddingException). Wygląda na to, że keytool miał problem z pewnymi znakami w haśle. Rozwiązałem go, dodając podwójne hasła wokół hasła.

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

Powiązane problemy