如何使用Java 8从Microsoft密钥库加载下一代证书?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (58)

我试图直接从Microsoft商店加载证书,以避免必须从MS商店导出证书,然后将它们导入JKS商店。

我设法从使用SunMSCAPI的MS商店直接使用传统加密技术从典型的AD CS Web服务器模板创建证书。

但是,SunMSCAPI不支持我使用的现代CNG密码,特别是RSA-2048非对称加密,SHA-384哈希和ECDSA-384数字签名。

是否有可能使用Java从MS商店加载下一代证书?我在jdk1.8.0_45上。是否有可以替代SunMSCAPI的现成JCE提供商可以处理CNG?我怀疑它将不得不使用JNI或JNA来访问本机Windows CNG API。

我试过Pheox JCAPI没有成功。它支持RSA和DSA,但不支持ECDSA。我没有尝试充气城堡,但我的理解是它不提供这样的能力。

有没有其他现成的JCE提供者可以替代SunMSCAPI来处理CNG,我可以尝试吗?

JCAPI v2仅支持明年第3版计划的RSA,ECDH支持。

有人建议安装用于Java 8Java加密扩展(JCE)无限强度管辖权策略文件可能可以解决此问题,但不,这没有帮助,因为问题是SunMSCAPI仅支持RSA密码,可以看出看着源代码

提问于
用户回答回答于

规范状态

由于某些国家的进口法规,Oracle实施提供了一个默认的加密权限策略文件,该文件限制了加密算法的强度。 如果需要更强大的算法(例如,带有256位密钥的AES),则必须获取JCE无限强度管辖权策略文件并将其安装到JDK / JRE中。 用户有责任根据当地法规核实该行为是否允许。

下载JCE Unlimited Strength Jurisdiction策略文件并将其放置在jre安全文件夹中。

用户回答回答于

扫码关注云+社区