Tôi đang cố gắng cài đặt chứng chỉ trong Cửa hàng máy cục bộ trong hành động tùy chỉnh. Giấy chứng nhận đã được cài đặt, nhưng khi tôi sử dụng nó để truy vấn AWS, tôi nhận được lỗi này:Cài đặt chứng chỉ trong Tác vụ tùy chỉnh .MSI không hoạt động chính xác
Object contains only the public half of a key pair. A private key must also be provided.
Trình cài đặt đang chạy nâng, mục tiêu là Windows Vista.
Nếu tôi sử dụng một .exe riêng biệt để cài đặt cùng một chứng chỉ, sử dụng cùng mã chính xác, nó hoạt động. Vì vậy, nó khác gì khi cài đặt chứng chỉ bằng Trình cài đặt Windows?
Mã:
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");
}
}