我正在尝试在 Java 11 中使用带有 NSS 的 SUNPKCS11 启用 FIPS 模式。我得到了这个异常 java.security.NoSuchAlgorithmException: PKCS11 KeyStore not available。
当我尝试在Java 8中启用 FIPS 时,它工作正常,但在Java 11中执行相同操作会引发异常。
SUNPKCS11 的初始化从 Java 8 更改为 Java 11。
在 Java 8 中:
Provider provider = Security.getProvider("SunPKCS11");
provider.configure(nssConfigFile);
爪哇 11:
Provider provider = new sun.security.pkcs11.SunPKCS11(nssConfigFile);
Security.addProvider(nssProvider);
使用配置文件初始化 SUNPKCS11 后,我试图从密钥库中获取提供程序,如下所示。
还有一件事是当我初始化 SUNPKCS11 时,它的Provider.id.info被设置为
Unconfigured and unusable PKCS11 provider,这有什么关系吗?
KeyStore.getInstance("SUNPKCS11");
然后在这里我没有密钥库中的PKCS11。
我的配置文件内容如下所示:
name=nss-client
nssLibraryDirectory=X:\XXX\NSS\lib\
nssSecmodDirectory=X:\XXX\NSS\db\
nssModule=fips
我需要更改配置文件内容中的某些内容还是 Java 11 中的错误?
请帮助我提出宝贵的建议。