BouncyCastleProvider不从PKCS#12文件获取PrivateKey和证书链

时间:2013-07-05 10:34:49

标签: java bouncycastle private-key pkcs#12 pfx

我在Windows上导出了文件cert.pfx。该文件包含我的证书。在Ubuntu我可以用密码打开它,我看到证书。但是当我加载这个文件时:

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);

完成此操作后,我nullpk chain。{。} 我也在java.security

注册了BC提供商

1 个答案:

答案 0 :(得分:1)

我将BouncyCastleProvider更改为SunJSSE。现在我正确的代码是:

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);

现在pk是我的私钥,chain是证书链 我不知道为什么BC不起作用。我有其他证书和BC提供商正常工作。