Sto tentando di installare un certificato nell'archivio del computer locale in un'azione personalizzata. Il certificato è installato, ma quando lo uso per interrogare AWS, ottengo questo errore:Installazione di un certificato in un .MSI Azione personalizzata non funziona correttamente
Object contains only the public half of a key pair. A private key must also be provided.
Il programma di installazione è in esecuzione elevati, l'obiettivo è Windows Vista.
Se utilizzo un file EXE separato per installare lo stesso certificato esatto, utilizzando lo stesso codice esatto, funziona. Quindi cos'è che differisce quando si installa un certificato usando Windows Installer?
Il codice:
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");
}
}