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