Korzystanie z JDK 1.6 lub nowszego
Justin wskazał w komentarzach poniżej, że samo narzędzie keytool jest w stanie to zrobić za pomocą następującego polecenia (chociaż tylko w JDK 1.6 i nowszych):
keytool -importkeystore -srckeystore mypfxfile.pfx -srcstoretype pkcs12
-destkeystore clientcert.jks -deststoretype JKS
Korzystanie z JDK 1.5 lub starszego
OpenSSL może to wszystko. Ta odpowiedź na JGuru jest najlepszą metodą, jaką do tej pory znalazłem.
Najpierw upewnij się, że masz zainstalowany OpenSSL . Wiele systemów operacyjnych jest już zainstalowanych, tak jak znalazłem w systemie Mac OS X.
Poniższe dwa polecenia konwertują plik pfx do formatu, który można otworzyć jako magazyn kluczy Java PKCS12:
openssl pkcs12 -in mypfxfile.pfx -out mypemfile.pem
openssl pkcs12 -export -in mypemfile.pem -out mykeystore.p12 -name "MyCert"
PAMIĘTAJ, że nazwa podana w drugim poleceniu jest aliasem klucza w nowym magazynie kluczy.
Zawartość magazynu kluczy można zweryfikować za pomocą narzędzia Java keytool za pomocą następującego polecenia:
keytool -v -list -keystore mykeystore.p12 -storetype pkcs12
Wreszcie, jeśli potrzebujesz, możesz przekonwertować to na magazyn kluczy JKS, importując utworzony powyżej magazyn kluczy do nowego magazynu kluczy:
keytool -importkeystore -srckeystore mykeystore.p12 -destkeystore clientcert.jks -srcstoretype pkcs12 -deststoretype JKS