Я пытаюсь включить режим FIPS, используя SUNPKCS11 с NSS в Java 11. Я получил это исключение java.security.NoSuchAlgorithmException: PKCS11 KeyStore недоступно.
Когда я пытался включить FIPS в Java 8, он работал нормально, но при том же в Java 11 вызывалось исключение.
Инициализация SUNPKCS11 изменилась с Java 8 на Java 11.
В Java 8:
Provider provider = Security.getProvider("SunPKCS11");
provider.configure(nssConfigFile);
Java 11:
Provider provider = new sun.security.pkcs11.SunPKCS11(nssConfigFile);
Security.addProvider(nssProvider);
После инициализации SUNPKCS11 с помощью файла конфигурации я пытаюсь получить поставщика из хранилища ключей, как показано ниже.
Еще одна вещь: когда я инициализировал SUNPKCS11, это Provider.id.info. установлено значение Ненастроенный и непригодный для использования поставщик PKCS11. Имеет ли это какое-то отношение?
KeyStore.getInstance("SUNPKCS11");
Тогда здесь у меня не было PKCS11 в хранилище ключей.
Содержание моего файла конфигурации выглядит следующим образом:
name=nss-client
nssLibraryDirectory=X:\XXX\NSS\lib\
nssSecmodDirectory=X:\XXX\NSS\db\
nssModule=fips
Нужно ли мне что-то менять в содержимом файла конфигурации или это ошибка Java 11?
Пожалуйста, помогите мне ценными предложениями.