Версия ПО: JMS 3.7.1.1860
Токены: Любые
Проблема:
При попытке установить или заменить лицензию, сервер JMS выдает сообщение о том, что устанавливаемая лицензия повреждена, хотя заведомо известно, что файл лицензии валиден:
При этом, в системных журналах присутствуют записи следующего вида:
YYYY-MM-DD HH:MM:SS,187 [8856] [1] ERROR DefaultCryptoProvider - System.Security.Cryptography.CryptographicException: Keyset as registered is invalid.
at System.Security.Cryptography.Utils.CreateProvHandle(CspParameters parameters, Boolean randomKeyContainer)
at System.Security.Cryptography.Utils.GetKeyPairHelper(CspAlgorithmType keyType, CspParameters parameters, Boolean randomKeyContainer, Int32 dwKeySize, SafeProvHandle& safeProvHandle, SafeKeyHandle& safeKeyHandle)
at System.Security.Cryptography.RSACryptoServiceProvider.GetKeyPair()
at System.Security.Cryptography.RSACryptoServiceProvider..ctor(Int32 dwKeySize, CspParameters parameters, Boolean useDefaultKeySize)
at Aladdin.EAP.Licensing.Impl.DefaultCryptoProvider.<>c__DisplayClass9_0.<GetPublicKey>b__0()
at Aladdin.EAP.Common.Helpers.Do(DoAction action, String methodName, ILog logger)
YYYY-MM-DD HH:MM:SS,192 [8856] [1] ERROR DefaultCryptoProvider - System.Security.Cryptography.CryptographicException: Keyset as registered is invalid.
at System.Security.Cryptography.Utils.CreateProvHandle(CspParameters parameters, Boolean randomKeyContainer)
at System.Security.Cryptography.Utils.GetKeyPairHelper(CspAlgorithmType keyType, CspParameters parameters, Boolean randomKeyContainer, Int32 dwKeySize, SafeProvHandle& safeProvHandle, SafeKeyHandle& safeKeyHandle)
at System.Security.Cryptography.RSACryptoServiceProvider.GetKeyPair()
at System.Security.Cryptography.RSACryptoServiceProvider..ctor(Int32 dwKeySize, CspParameters parameters, Boolean useDefaultKeySize)
at Aladdin.EAP.Licensing.Impl.DefaultCryptoProvider.<>c__DisplayClass9_0.<GetPublicKey>b__0()
at Aladdin.EAP.Common.Helpers.Do(DoAction action, String methodName, ILog logger)
at Aladdin.EAP.Licensing.Impl.DefaultCryptoProvider.GetPublicKey()
at Aladdin.EAP.Licensing.Impl.DefaultCryptoProvider.<>c__DisplayClass7_0.<VerifyXml>b__0()
at Aladdin.EAP.Common.Helpers.Do(DoAction action, String methodName, ILog logger)
YYYY-MM-DD HH:MM:SS,192 [8856] [1] ERROR LicenseProvider - Verifying error: '{0}'.
System.Security.Cryptography.CryptographicException: Keyset as registered is invalid.
at System.Security.Cryptography.Utils.CreateProvHandle(CspParameters parameters, Boolean randomKeyContainer)
at System.Security.Cryptography.Utils.GetKeyPairHelper(CspAlgorithmType keyType, CspParameters parameters, Boolean randomKeyContainer, Int32 dwKeySize, SafeProvHandle& safeProvHandle, SafeKeyHandle& safeKeyHandle)
at System.Security.Cryptography.RSACryptoServiceProvider.GetKeyPair()
at System.Security.Cryptography.RSACryptoServiceProvider..ctor(Int32 dwKeySize, CspParameters parameters, Boolean useDefaultKeySize)
at Aladdin.EAP.Licensing.Impl.DefaultCryptoProvider.<>c__DisplayClass9_0.<GetPublicKey>b__0()
at Aladdin.EAP.Common.Helpers.Do(DoAction action, String methodName, ILog logger)
at Aladdin.EAP.Licensing.Impl.DefaultCryptoProvider.GetPublicKey()
at Aladdin.EAP.Licensing.Impl.DefaultCryptoProvider.<>c__DisplayClass7_0.<VerifyXml>b__0()
at Aladdin.EAP.Common.Helpers.Do(DoAction action, String methodName, ILog logger)
at Aladdin.EAP.Licensing.Impl.DefaultCryptoProvider.VerifyXml(XmlDocument doc)
at Aladdin.EAP.Licensing.Impl.LicenseProvider.VerifySignature(License license)
Причина:
Повреждены файлы кэша криптографической подсистемы ОС "Windows", в связи с чем подпись лицензии не может быть проверена .
Решение:
-
Создать контрольную точку восстановления.
-
Перейти в 'C:\Users\*username*\AppData\Roaming\Microsoft\Crypto', где username - имя текущего пользователя.
-
Переименовать папку RSA в RSA.old.
-
Перезагрузить хост.
После перезагрузки файлы кэша сгенерируются автоматически.