我有一个关于将.pfx证书导入bouncycastle-keystore的问题。错误消息显示“...篡改的密钥库文件或错误的PKCS12密码...”。我已经使用Windows'CertMgr导出了证书。 证书将导出为.pfx文件。我想使用私钥导入证书,以便与tls的客户端身份验证结合使用。
我希望得到任何帮助,
亲切的问候。
答案 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'这样的东西在供应商之间使用是相当安全的(或者当然是真正的)。