使用Java将windows应用商店中的证书导出到p12文件

使用Java将windows应用商店中的证书导出到p12文件,java,certificate,pkcs#12,Java,Certificate,Pkcs#12,我需要将windows应用商店中的证书导出到p12文件。与firefox/IE浏览器类似,但使用JAVA。目前我唯一能做到这一点的方法是使用JNI编写带有双Cpp包装器的C#或带有包装器的MCPP,这并不是真正有用的。我曾尝试使用SUNMSCAPI,但未能。。感谢您的任何意见。。谢谢 如果上述方法确实不可行,是否可以使用这些证书创建密钥库?您可以使用Java标准密钥库API,并使用。您可以加载名为Windows MY的密钥库,该密钥库包含存储在Windows密钥库中的所有证书 KeyStore.

我需要将windows应用商店中的证书导出到p12文件。与firefox/IE浏览器类似,但使用JAVA。目前我唯一能做到这一点的方法是使用JNI编写带有双Cpp包装器的C#或带有包装器的MCPP,这并不是真正有用的。我曾尝试使用SUNMSCAPI,但未能。。感谢您的任何意见。。谢谢


如果上述方法确实不可行,是否可以使用这些证书创建密钥库?

您可以使用Java标准密钥库API,并使用。您可以加载名为Windows MY的密钥库,该密钥库包含存储在Windows密钥库中的所有证书

KeyStore.getInstance("Windows-MY");
对Windows密钥库的引用提供了通过提取证书的方法


检索到证书后,请将其导出到PKCS12文件。

有关不使用.net framework/JNI的任何帮助,请记住尝试此操作。。您确定它也允许我导出私钥吗?就我所知,它还将导出私钥。
code
keystorekeystore3;尝试{Provider bcProv=Security.getProvider(“BC”);if(bcProv==null){//实例化Bouncy Castle提供程序类bcProvClass=Class.forName(“org.bouncycastle.jce.Provider.BouncyCastleProvider”);bcProv=(Provider)bcProvClass.newInstance();//将BC添加为安全提供程序Security.addProvider(bcProv)}keystore3=KeyStore.getInstance(“Windows MY”,“BC”);
code
抛出一个没有这样的算法:Windows MY for provider BCI能够使用SunMSCAPI加载Windows应用商店,但它不允许我导出整个应用商店试图用以下代码导出,openedKeyStore=KeyStore.getInstance(“Windows MY”);Key privKey=openedKeyStore.getKey(sEntryAlias,cPassword);Certificate[]certs=openedKeyStore.getCertificateChain(sEntryAlias);KeyStore pkcs12=KeyStoreUtil.createKeyStore(KeyStoreType.pkcs12);//使用BC提供程序pkcs12创建新的PKCS#12密钥库。setKeyEntry(sEntryAlias,privKey,new char[0],certs);pkcs12.store(fos,cPassword);java.io.IOException:加密数据的异常-java.security.InvalidKeyException:无法包装密钥,空编码。