Використання JDK 1.6 або новішої версії
У коментарях нижче Джастін зазначив, що тільки keytool здатний зробити це за допомогою наступної команди (хоча тільки в JDK 1.6 і пізніших версіях):
keytool -importkeystore -srckeystore mypfxfile.pfx -srcstoretype pkcs12
-destkeystore clientcert.jks -deststoretype JKS
Використання JDK 1.5 або нижче
OpenSSL може це зробити все. Ця відповідь на JGuru - найкращий метод, який я знайшов поки що.
По-перше, переконайтеся, що у вас встановлено OpenSSL . У багатьох операційних системах його вже встановлено, як я виявив у Mac OS X.
Наступні дві команди перетворюють файл pfx у формат, який можна відкрити як сховище ключів Java PKCS12:
openssl pkcs12 -in mypfxfile.pfx -out mypemfile.pem
openssl pkcs12 -export -in mypemfile.pem -out mykeystore.p12 -name "MyCert"
Зверніть увагу, що ім'я, вказане у другій команді, є псевдонімом вашого ключа в новому магазині ключів.
Ви можете перевірити вміст сховища ключів за допомогою утиліти Java keytool за допомогою наступної команди:
keytool -v -list -keystore mykeystore.p12 -storetype pkcs12
Нарешті, якщо вам потрібно, ви можете перетворити це у сховище ключів JKS, імпортуючи створений вище магазин ключів, у новий сховище ключів:
keytool -importkeystore -srckeystore mykeystore.p12 -destkeystore clientcert.jks -srcstoretype pkcs12 -deststoretype JKS