Sử dụng JDK 1.6 trở lên
Justin đã chỉ ra trong các bình luận bên dưới rằng một mình keytool có thể thực hiện điều này bằng cách sử dụng lệnh sau (mặc dù chỉ trong JDK 1.6 trở lên):
keytool -importkeystore -srckeystore mypfxfile.pfx -srcstoretype pkcs12
-destkeystore clientcert.jks -deststoretype JKS
Sử dụng JDK 1.5 trở xuống
OpenSSL có thể làm tất cả. Câu trả lời này trên JGuru là phương pháp tốt nhất mà tôi tìm thấy cho đến nay.
Trước hết hãy đảm bảo rằng bạn đã cài đặt OpenSSL . Nhiều hệ điều hành đã được cài đặt nó như tôi tìm thấy với Mac OS X.
Hai lệnh sau chuyển đổi tệp pfx sang định dạng có thể được mở dưới dạng kho khóa Java PKCS12:
openssl pkcs12 -in mypfxfile.pfx -out mypemfile.pem
openssl pkcs12 -export -in mypemfile.pem -out mykeystore.p12 -name "MyCert"
LƯU Ý rằng tên được cung cấp trong lệnh thứ hai là bí danh của khóa của bạn trong kho khóa mới.
Bạn có thể xác minh nội dung của kho khóa bằng tiện ích Java keytool bằng lệnh sau:
keytool -v -list -keystore mykeystore.p12 -storetype pkcs12
Cuối cùng, nếu cần, bạn có thể chuyển đổi kho này thành kho khóa JKS bằng cách nhập kho khóa đã tạo ở trên vào kho khóa mới:
keytool -importkeystore -srckeystore mykeystore.p12 -destkeystore clientcert.jks -srcstoretype pkcs12 -deststoretype JKS