【问题标题】:BouncyCastleProvider do not get PrivateKey and certificate chain from PKCS#12 fileBouncyCastleProvider 没有从 PKCS#12 文件中获取 PrivateKey 和证书链
【发布时间】:2013-07-03 10:26:25
【问题描述】:

我在 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提供者

【问题讨论】:

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


    【解决方案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 提供程序正常工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-21
      • 2010-11-06
      • 2015-11-22
      • 1970-01-01
      • 1970-01-01
      • 2019-08-30
      • 1970-01-01
      相关资源
      最近更新 更多