Utilisation de JDK 1.6 ou version ultérieure
Il a été souligné par Justin dans les commentaires ci-dessous que keytool seul est capable de le faire en utilisant la commande suivante (bien que seulement dans JDK 1.6 et versions ultérieures):
keytool -importkeystore -srckeystore mypfxfile.pfx -srcstoretype pkcs12
-destkeystore clientcert.jks -deststoretype JKS
Utilisation de JDK 1.5 ou inférieur
OpenSSL peut tout faire. Cette réponse sur JGuru est la meilleure méthode que j'ai trouvée jusqu'à présent.
Assurez-vous tout d'abord que OpenSSL est installé. De nombreux systèmes d'exploitation l'ont déjà installé comme je l'ai trouvé avec Mac OS X.
Les deux commandes suivantes convertissent le fichier pfx dans un format qui peut être ouvert en tant que magasin de clés Java PKCS12:
openssl pkcs12 -in mypfxfile.pfx -out mypemfile.pem
openssl pkcs12 -export -in mypemfile.pem -out mykeystore.p12 -name "MyCert"
Notez que le nom fourni dans la deuxième commande est l'alias de votre clé dans le nouveau magasin de clés.
Vous pouvez vérifier le contenu du magasin de clés à l'aide de l'utilitaire Java keytool avec la commande suivante:
keytool -v -list -keystore mykeystore.p12 -storetype pkcs12
Enfin, si vous en avez besoin, vous pouvez le convertir en un magasin de clés JKS en important le magasin de clés créé ci-dessus dans un nouveau magasin de clés:
keytool -importkeystore -srckeystore mykeystore.p12 -destkeystore clientcert.jks -srcstoretype pkcs12 -deststoretype JKS