Установите сертификат .cer и pfx в программу установки рабочего стола С#

как я могу установить два сертификата (pfx с паролем) во время установки на ПК? Мне нужны два сертификата, расположенные в личных-> сертификатах, потому что настольная программа используется для всех пользователей на этом компьютере.

Я использую .net 3.5

Спасибо.

введите здесь описание изображения


person user3486836    schedule 13.04.2018    source источник
comment
Не могли бы вы более точно определить мою настройку? Вы уже используете программное обеспечение для установки определенного поставщика или находитесь на этапе планирования создания проекта установки?   -  person ZiggZagg    schedule 13.04.2018


Ответы (1)


Это ниже извлечет открытый и закрытый ключ из файла .PFX и проанализирует его в объект X509Certificate2 (тип X509Certificate не поддерживает закрытые ключи и не может понять свойства V2 и V3). Затем вы передаете объект X509Certificate2 в локальный репозиторий сертификатов, для которого в настоящее время установлено значение LocalMachine, поскольку я предполагаю, что это то место, где вы хотите, согласно прикрепленному вами изображению.

X509Certificate2 cert = new X509Certificate2(@"C:\key.pfx", "test1234", X509KeyStorageFlags.MachineKeySet | X509KeyStorageFlags.PersistKeySet); //Saves in the local machine store - accessible for all users

  using (var store = new X509Store(StoreName.My, StoreLocation.LocalMachine))
  {
     store.Open(OpenFlags.ReadWrite); //Set to Write - You need Admin Permissions
     store.Add(cert); //Add Private Cert to Store
  }

Я рекомендую вам прочитать этот сообщение Пола Стовелла, прежде чем погрузиться с головой, поскольку разрешения могут быть кошмаром, особенно в доменная среда (Active Directory).

person Kitson88    schedule 13.04.2018