Utilizzando JDK 1.6 o successivo
È stato sottolineato da Justin nei commenti seguenti che keytool da solo è in grado di farlo utilizzando il seguente comando (anche se solo in JDK 1.6 e versioni successive):
keytool -importkeystore -srckeystore mypfxfile.pfx -srcstoretype pkcs12
-destkeystore clientcert.jks -deststoretype JKS
Utilizzando JDK 1.5 o inferiore
OpenSSL può fare tutto. Questa risposta su JGuru è il metodo migliore che ho trovato finora.
Innanzitutto assicurati di avere OpenSSL installato. Molti sistemi operativi lo hanno già installato come ho trovato con Mac OS X.
I due comandi seguenti convertono il file pfx in un formato che può essere aperto come archivio chiavi Java PKCS12:
openssl pkcs12 -in mypfxfile.pfx -out mypemfile.pem
openssl pkcs12 -export -in mypemfile.pem -out mykeystore.p12 -name "MyCert"
NOTA che il nome fornito nel secondo comando è l'alias della tua chiave nel nuovo archivio chiavi.
È possibile verificare il contenuto dell'archivio chiavi utilizzando l'utilità keytool Java con il seguente comando:
keytool -v -list -keystore mykeystore.p12 -storetype pkcs12
Infine, se necessario, puoi convertirlo in un archivio chiavi JKS importando l'archivio chiavi creato sopra in un nuovo archivio chiavi:
keytool -importkeystore -srckeystore mykeystore.p12 -destkeystore clientcert.jks -srcstoretype pkcs12 -deststoretype JKS