Использование 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