MC Admin Error - Can't open RSA Key container

Solved
S
SteeveP
Sogesma/Logesma

Hello everyone.

Going through something (again...)

We had to reboot the Server this afternoon, after opening a rule on his Firewall to allow older devices on WIN CE 6.0 to communicate throught a second port.

we also had to reboot again to activate correctly TLS 1.0.

Everyhing semmed weel , but then one of my coworker called me cause he wasn't able to login onto the webConsole.

After a check it's seems that the last reboot didn't worked well .

We did try to undo what we did...but still .

MCAdmin won't start anymore.

I looked inside the McAdmin.log and it appears that somehow between two restart of the server , something happend and it can't acess RSA Key container anymore.

We did list search and looked if the access on the Key folder was still there...And yeah...nothing seems to have changed. ?!

If anyone ever encountered this?


[Thumbprint]
  D69AE84DC7023400F2337518A49217C901DD9C7D
, validation callback: System.Net.Security.RemoteCertificateValidationCallback
[2023-03-02 16:51:39.728] INFO  (1): ********************************************************
[2023-03-02 16:51:39.743] INFO  (1): Application has started
[2023-03-02 16:51:40.056] ERROR (1): Error in the App.OnStartup method. Exception details:
[2023-03-02 16:51:40.056] ERROR (1): System.Configuration.ConfigurationErrorsException: Impossible de déchiffrer à l'aide du fournisseur 'RsaProtectedConfigurationProvider'. Message d'erreur du fournisseur : Impossible d'ouvrir le conteneur de clé RSA. (C:\Program Files\SOTI\MobiControl\Database.config line 3) ---> System.Configuration.ConfigurationErrorsException: Impossible d'ouvrir le conteneur de clé RSA.
   à System.Configuration.RsaProtectedConfigurationProvider.ThrowBetterException(Boolean keyMustExist)
   à System.Configuration.RsaProtectedConfigurationProvider.GetCryptoServiceProvider(Boolean exportable, Boolean keyMustExist)
   à System.Configuration.RsaProtectedConfigurationProvider.Decrypt(XmlNode encryptedNode)
   à System.Configuration.ProtectedConfigurationSection.DecryptSection(String encryptedXml, ProtectedConfigurationProvider provider)
   à System.Configuration.Internal.InternalConfigHost.System.Configuration.Internal.IInternalConfigHost.DecryptSection(String encryptedXml, ProtectedConfigurationProvider protectionProvider, ProtectedConfigurationSection protectedConfigSection)
   à System.Configuration.Internal.DelegatingConfigHost.DecryptSection(String encryptedXml, ProtectedConfigurationProvider protectionProvider, ProtectedConfigurationSection protectedConfigSection)
   à System.Configuration.BaseConfigurationRecord.CallHostDecryptSection(String encryptedXml, ProtectedConfigurationProvider protectionProvider, ProtectedConfigurationSection protectedConfig)
   à System.Configuration.RuntimeConfigurationRecord.CallHostDecryptSection(String encryptedXml, ProtectedConfigurationProvider protectionProvider, ProtectedConfigurationSection protectedConfig)
   à System.Configuration.BaseConfigurationRecord.DecryptConfigSection(ConfigXmlReader reader, ProtectedConfigurationProvider protectionProvider)
   --- Fin de la trace de la pile d'exception interne ---
   à System.Configuration.BaseConfigurationRecord.EvaluateOne(String[] keys, SectionInput input, Boolean isTrusted, FactoryRecord factoryRecord, SectionRecord sectionRecord, Object parentResult)
   à System.Configuration.BaseConfigurationRecord.Evaluate(FactoryRecord factoryRecord, SectionRecord sectionRecord, Object parentResult, Boolean getLkg, Boolean getRuntimeObject, Object& result, Object& resultRuntimeObject)
   à System.Configuration.BaseConfigurationRecord.GetSectionRecursive(String configKey, Boolean getLkg, Boolean checkPermission, Boolean getRuntimeObject, Boolean requestIsHere, Object& result, Object& resultRuntimeObject)
   à System.Configuration.BaseConfigurationRecord.GetSectionRecursive(String configKey, Boolean getLkg, Boolean checkPermission, Boolean getRuntimeObject, Boolean requestIsHere, Object& result, Object& resultRuntimeObject)
   à System.Configuration.BaseConfigurationRecord.GetSectionRecursive(String configKey, Boolean getLkg, Boolean checkPermission, Boolean getRuntimeObject, Boolean requestIsHere, Object& result, Object& resultRuntimeObject)
   à System.Configuration.BaseConfigurationRecord.GetSection(String configKey)
   à System.Configuration.ClientConfigurationSystem.System.Configuration.Internal.IInternalConfigSystem.GetSection(String sectionName)
   à System.Configuration.ConfigurationManager.get_ConnectionStrings()
   à Soti.MobiControl.Database.DatabaseConnectionProvider.GetDatabaseConnectionSettings(String connectionStringName, String applicationName)
   à UserInterfaceWpf.InversionOfControlContainer.Register(IUnityContainer container)
   à UserInterfaceWpf.Bootstrapper.ConfigureContainer()
   à Microsoft.Practices.Prism.UnityExtensions.UnityBootstrapper.Run(Boolean runWithDefaultConfiguration)
   à UserInterfaceWpf.App.OnStartup(Object sender, StartupEventArgs e)
[2023-03-02 16:51:40.087] ERROR (1): Details:
[2023-03-02 16:51:40.087] ERROR (1): Impossible de déchiffrer à l'aide du fournisseur 'RsaProtectedConfigurationProvider'. Message d'erreur du fournisseur : Impossible d'ouvrir le conteneur de clé RSA. (C:\Program Files\SOTI\MobiControl\Database.config line 3)
[2023-03-02 16:51:40.087] ERROR (1):    à System.Configuration.BaseConfigurationRecord.EvaluateOne(String[] keys, SectionInput input, Boolean isTrusted, FactoryRecord factoryRecord, SectionRecord sectionRecord, Object parentResult)
   à System.Configuration.BaseConfigurationRecord.Evaluate(FactoryRecord factoryRecord, SectionRecord sectionRecord, Object parentResult, Boolean getLkg, Boolean getRuntimeObject, Object& result, Object& resultRuntimeObject)
   à System.Configuration.BaseConfigurationRecord.GetSectionRecursive(String configKey, Boolean getLkg, Boolean checkPermission, Boolean getRuntimeObject, Boolean requestIsHere, Object& result, Object& resultRuntimeObject)
   à System.Configuration.BaseConfigurationRecord.GetSectionRecursive(String configKey, Boolean getLkg, Boolean checkPermission, Boolean getRuntimeObject, Boolean requestIsHere, Object& result, Object& resultRuntimeObject)
   à System.Configuration.BaseConfigurationRecord.GetSectionRecursive(String configKey, Boolean getLkg, Boolean checkPermission, Boolean getRuntimeObject, Boolean requestIsHere, Object& result, Object& resultRuntimeObject)
   à System.Configuration.BaseConfigurationRecord.GetSection(String configKey)
   à System.Configuration.ClientConfigurationSystem.System.Configuration.Internal.IInternalConfigSystem.GetSection(String sectionName)
   à System.Configuration.ConfigurationManager.get_ConnectionStrings()
   à Soti.MobiControl.Database.DatabaseConnectionProvider.GetDatabaseConnectionSettings(String connectionStringName, String applicationName)
   à UserInterfaceWpf.InversionOfControlContainer.Register(IUnityContainer container)
   à UserInterfaceWpf.Bootstrapper.ConfigureContainer()
   à Microsoft.Practices.Prism.UnityExtensions.UnityBootstrapper.Run(Boolean runWithDefaultConfiguration)
   à UserInterfaceWpf.App.OnStartup(Object sender, StartupEventArgs e)
[2023-03-02 16:51:40.087] ERROR (1): Error in the App.OnStartup method. Inner exception details:
[2023-03-02 16:51:40.087] ERROR (1): Impossible d'ouvrir le conteneur de clé RSA.
[2023-03-02 16:51:40.087] ERROR (1):    à System.Configuration.RsaProtectedConfigurationProvider.ThrowBetterException(Boolean keyMustExist)
   à System.Configuration.RsaProtectedConfigurationProvider.GetCryptoServiceProvider(Boolean exportable, Boolean keyMustExist)
   à System.Configuration.RsaProtectedConfigurationProvider.Decrypt(XmlNode encryptedNode)
   à System.Configuration.ProtectedConfigurationSection.DecryptSection(String encryptedXml, ProtectedConfigurationProvider provider)
   à System.Configuration.Internal.InternalConfigHost.System.Configuration.Internal.IInternalConfigHost.DecryptSection(String encryptedXml, ProtectedConfigurationProvider protectionProvider, ProtectedConfigurationSection protectedConfigSection)
   à System.Configuration.Internal.DelegatingConfigHost.DecryptSection(String encryptedXml, ProtectedConfigurationProvider protectionProvider, ProtectedConfigurationSection protectedConfigSection)
   à System.Configuration.BaseConfigurationRecord.CallHostDecryptSection(String encryptedXml, ProtectedConfigurationProvider protectionProvider, ProtectedConfigurationSection protectedConfig)
   à System.Configuration.RuntimeConfigurationRecord.CallHostDecryptSection(String encryptedXml, ProtectedConfigurationProvider protectionProvider, ProtectedConfigurationSection protectedConfig)
   à System.Configuration.BaseConfigurationRecord.DecryptConfigSection(ConfigXmlReader reader, ProtectedConfigurationProvider protectionProvider)

2 years ago
SOTI MobiControl
ANSWERS
G
GPMOD@SOTI Bronze Contributor
2 years ago

Hi Steeve, 

Thanks for posting on SOTI Pulse. 

You haven't posted about ports, so please go through the system requirements and certificate document to ensure that you have correctly configured your environment. 

Please find some useful links below. 

System Requirements
Using SHA-1 and SHA-2 Certificates on the Same Deployment Server

Thank you. 

Kind regards,

Technical Support | SOTI Inc. |1.905.624.9828 | support@soti.net | www.soti.net |



Solution
S
SteeveP
2 years ago

Somehow, right on some Folders was removed after a restart.

After restoring them, everything went on the rails again ;)