如何使用Java 8从Microsoft密钥库加载下一代证书?
我正在尝试直接从 Microsoft 存储加载证书,以避免必须从 MS 存储中导出证书,然后将其导入到 JKS 存储中。
我设法从典型的AD CS Web服务器模板创建证书,使用传统的加密直接从使用SunMSCAPI的MS存储中创建证书。
但是,SunMSCAPI不支持我正在使用的现代CNG密码,特别是RSA-2048非对称加密,SHA-384哈希和ECDSA-384数字签名。
是否可以使用 Java 从 MS 存储加载下一代证书?我在jdk1.8.0_45。有没有一个现成的JCE提供商可以替代SunMSCAPI来处理CNG?我怀疑它必须使用JNI或JNA来访问本机Windows CNG API。
我尝试过Pheox JCAPI但没有成功。它支持 RSA 和 DSA,但不支持 ECDSA。我没有尝试过充气城堡,但我的理解是它不提供这样的功能。
是否有其他现成的JCE提供商替代方案可以替代SunMSCAPI,我可以尝试处理CNG?
更新:JCAPI v2仅支持RSA,ECDH支持计划明年的v3。
更新:有些人建议为Java 8安装Java Cryptography Extension(JCE)Unlimited Strength管辖权策略文件也许可以解决这个问题,但是不,这没有帮助,因为问题是SunMSCAPI仅支持RSA密码,如查看源代码所示。