0

PFX 파일에서 개인 키를 읽을 수 있지만 공개 키는 읽을 수 없습니다. 다음 코드를 사용하여 공개 키를 읽습니다.Java의 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 파일에서 읽을 때 올바르게 작동합니다. 도와주세요

+0

좋아, 나는 모든 가능성을 시도했다. 그리고 "개인 키는 PFX 파일을 읽어야합니다."라고 결론지었습니다. –

답변

3

KeyStore 클래스를 사용하고 파일을 PKCS # 12 키 저장소로 취급하십시오. KeyStore.getInstance("PKCS12")을 사용하여 PKCS12 키 저장소의 인스턴스를 가져옵니다.

KeyStore 용 Javadocs에는 샘플 코드가 들어 있습니다.

+0

keyStore를로드하려면 암호가 필요합니다. 비밀 번호없이 공개 키를 추출 할 수 있습니까? 나는 이미 작동하는 keyStore를 시도했다. –

+0

확실하지 않다. 'char []'배열 참조 대신에'null'을 사용하여 KeyStore를로드 해보십시오. –

+0

Nop !! 나는 null과 ""모두 시도했다. –

관련 문제