Certificate 在BouncyCastle密钥库中导入.pfx

Certificate 在BouncyCastle密钥库中导入.pfx,certificate,bouncycastle,x509,Certificate,Bouncycastle,X509,我有一个关于将.pfx证书导入bouncycastle密钥库的问题。错误消息显示“…密钥库文件被篡改或PKCS12密码不正确…”。我已使用Windows的CertMgr导出证书 证书将导出为.pfx文件。我想导入带有私钥的证书,以便将其与tls的客户端身份验证结合使用 非常感谢您的帮助。不确定您的案例,但很多工具都暗示了在私钥和/或PKCS#12机柜上有密码的假设;它是相同的,是4或6个字符。我发现使用像“abcd1234”这样的东西在供应商之间使用是相当安全的(当然也可以是真正的)。不确定您的

我有一个关于将.pfx证书导入bouncycastle密钥库的问题。错误消息显示“…密钥库文件被篡改或PKCS12密码不正确…”。我已使用Windows的CertMgr导出证书

证书将导出为.pfx文件。我想导入带有私钥的证书,以便将其与tls的客户端身份验证结合使用


非常感谢您的帮助。

不确定您的案例,但很多工具都暗示了在私钥和/或PKCS#12机柜上有密码的假设;它是相同的,是4或6个字符。我发现使用像“abcd1234”这样的东西在供应商之间使用是相当安全的(当然也可以是真正的)。

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

Windows的PFX文件只是重命名为PKCS#12文件,您甚至不需要BouncyCastle来导入它们:您可以使用Java的内置密钥库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);

Windows的PFX文件被重命名为PKCS#12文件,您甚至不需要BouncyCastle来导入它们:您可以使用Java内置的密钥库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);

问题是,关键是长跑问题是,关键是长跑