如何从java中的PFX文件中读取公钥

我能够从PFX文件中读取私钥,但不能读取公钥。 我使用以下代码来读取公钥。

InputStream inStream = new FileInputStream(certFile); CertificateFactory cf = CertificateFactory.getInstance("X.509"); BufferedInputStream bis = new BufferedInputStream(inStream); // if (bis.available() > 0) { java.security.cert.Certificate cert = cf.generateCertificate(bis); System.out.println("This part is not getting printed in case of PFX file"); // } puk = (PublicKey) cert.getPublicKey(); 

当我从.cer文件中读取时,此代码正常工作。 请帮忙

使用KeyStore类并将该文件视为PKCS#12 KeyStore。 使用KeyStore.getInstance("PKCS12")获取PKCS12密钥库的实例。

KeyStore的Javadocs包含示例代码。