Je tente d'installer un certificat dans le magasin de la machine locale dans une action personnalisée. Le certificat est installé, mais quand je l'utilise pour interroger AWS, je reçois cette erreur:L'installation d'un certificat dans une action personnalisée .MSI ne fonctionne pas correctement
Object contains only the public half of a key pair. A private key must also be provided.
Le programme d'installation est en cours d'exécution surélevée, la cible est Windows Vista.
Si j'utilise un fichier .exe distinct pour installer exactement le même certificat, en utilisant exactement le même code, cela fonctionne. Qu'est-ce qui diffère lors de l'installation d'un certificat à l'aide de Windows Installer?
Le code:
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");
}
}