在BouncyCastle-Keystore中导入.pfx

时间:2012-02-22 13:26:15

标签: certificate bouncycastle x509

我有一个关于将.pfx证书导入bouncycastle-keystore的问题。错误消息显示“...篡改的密钥库文件或错误的PKCS12密码...”。我已经使用Windows'CertMgr导出了证书。 证书将导出为.pfx文件。我想使用私钥导入证书,以便与tls的客户端身份验证结合使用。

我希望得到任何帮助,

亲切的问候。

2 个答案:

答案 0 :(得分:4)

Windows的PFX文件刚刚重命名为PKCS#12文件,您甚至不需要BouncyCastle来导入它们:您可以使用Java的内置KeyStore API(对密码长度或构图没有限制 - 如果您需要“没有密码”你可以使用空字符串)。

通常,PKCS12 / PFX导入代码如下所示:

 FileInputStream fis = new FileInputStream("your.pfx");
 String password = "your-password";

 KeyStore ks = KeyStore.getInstance("pkcs12");
 ks.load(fis, password.toCharArray());
 String alias = ks.aliases().nextElement();

 PrivateKey pKey = (PrivateKey)ks.getKey(alias, password.toCharArray());
 X509Certificate cert = (X509Certificate)ks.getCertificate(alias);

答案 1 :(得分:0)

不确定您的情况 - 但是很多工具都隐含了关于私钥和/或PKCS#12机箱上的密码的假设;它是相同的,是4或6个字符。我发现使用像'abcd1234'这样的东西在供应商之间使用是相当安全的(或者当然是真正的)。