我正在将密钥对(私钥和证书(添加到java中的Windows密钥存储中。我需要使私钥不可导出。这样做的Java代码使私钥可导出。我该如何更改此设置?
我没有找到任何可以更改的属性或属性。 Keystore.store 方法获取 LoadStoreParameter,但看起来它是关于设置私钥的密码。
PrivateKey privateKey=...;
Certificate certificate=...;
KeyStore keyStore = KeyStore.getInstance("Windows-MY");
keyStore.load(null);
keyStore.setKeyEntry("alias",privateKey,"".toCharArray(),new java.security.cert.Certificate[]{certificate});
对 Windows 加密服务的访问由 SunMSCAPI 提供程序管理。它提供了Java JCE API和Windows服务之间的桥梁。请参阅文档
SunMSCAPI 提供程序使应用程序能够使用标准 JCA/JCE API 访问 Microsoft Windows 平台上的本机加密库、证书存储和密钥容器。SunMSCAPI 提供程序本身不包含加密功能,它只是 Java 环境和 Windows 上的本机加密服务之间的管道。
SunMSCAPI 中的WINDOWS-MY
密钥库使用标准的 Java 密钥库 API,它没有定义任何类型的"可提取"属性,所以恐怕你将无法建立它。