2013-07-05 3 views
0

Windows에 내 보낸 파일이 cert.pfx입니다. 이 파일에는 내 인증서가 들어 있습니다. 우분투에서는 암호로 열 수 있으며 인증서를 볼 수 있습니다. 나는이 파일을로드 할 때이 작업 후BouncyCastleProvider가 PKCS # 12 파일에서 PrivateKey 및 인증서 체인을 가져 오지 않습니다.

BouncyCastleProvider provider = new BouncyCastleProvider(); 
Security.addProvider(provider); 
KeyStore ks = ks = KeyStore.getInstance("pkcs12", provider.getName()); 
ks.load(new FileInputStream("/home/test/.cert.pfx", "xxxxxx".toCharArray()); 
String alias = ks.aliases().nextElement(); 
PrivateKey pk = (PrivateKey) ks.getKey(alias, pts.getRandom()); 
Certificate[] chain = ks.getCertificateChain(alias); 

을 나는 pkchainnull 있습니다. java.security

답변

1

에서
또한 내가 등록한 BC 제공자는 내가 SunJSSEBouncyCastleProvider을 변경했습니다. 이제 내 올바르게 코드는 다음과 같습니다 pk에서 지금

String providerName = "SunJSSE"; 
KeyStore ks = ks = KeyStore.getInstance("pkcs12", providerName); 
ks.load(new FileInputStream("/home/test/.cert.pfx", "xxxxxx".toCharArray()); 
String alias = ks.aliases().nextElement(); 
PrivateKey pk = (PrivateKey) ks.getKey(alias, pts.getRandom()); 
Certificate[] chain = ks.getCertificateChain(alias); 

내 privarte 키이며, chain에 인증서 체인입니다

.
BC에서 왜 작동하지 않는지 알 수 없습니다. 다른 인증서와 BC 공급자가 올바르게 작동합니다.