Установка сертификата в пользовательском действии MSI не работает должным образом
Я пытаюсь установить сертификат в локальном хранилище компьютеров в настраиваемом действии. Сертификат установлен, но когда я использую его для запроса AWS, я получаю эту ошибку:
Объект содержит только открытую половину пары ключей. Закрытый ключ также должен быть предоставлен.
Установщик работаетприподнятыйцель - Windows Vista.
Если я использую отдельный .exe для установки точно такого же сертификата, используя тот же код, это работает. Так чем же отличается установка сертификата с помощью установщика Windows?
Код:
private void InstallCertificate(string certificatePath, string certificatePassword)
{
if (IsAdmin())
{
try
{
X509Certificate2 cert = new X509Certificate2(certificatePath, certificatePassword,
X509KeyStorageFlags.MachineKeySet | X509KeyStorageFlags.PersistKeySet);
X509Store store = new X509Store(StoreName.My, StoreLocation.LocalMachine);
store.Open(OpenFlags.ReadWrite);
store.Add(cert);
store.Close();
}
catch (Exception ex)
{
throw new DataException("Certificate appeared to load successfully but also seems to be null.", ex);
}
}
else
{
throw new Exception("Not enough priviliges to install certificate");
}
}