簡體   English   中英

BouncyCastleProvider無法從PKCS#12文件中獲取私鑰和​​證書鏈

[英]BouncyCastleProvider do not get PrivateKey and certificate chain from PKCS#12 file

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

完成此操作后,我在pkchain都為null
我也在java.security注冊了BC提供程序

我將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提供程序可以正常工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM