Я хотел бы сохранить сертификат x509 для использования службой Windows.У меня проблема, где хранить этот сертификат.С помощью оснастки сертификата консоли управления Microsoft (mmc) можно создать хранилища сертификатов для конкретных служб Windows.Проблема в том, что я не могу понять, как получить эти сертификаты через C #.
- Установлен сертификат в хранилище сервисов с использованием mmc и оснастки сертификата.
Создал и установил службу Windows, используя topshelf с этим кодом:
var localStore = new X509Store(StoreLocation.LocalMachine);
localStore.Open(OpenFlags.ReadOnly);
foreach (X509Certificate2 c in localStore.Certificates)
{
_log.Debug("local: certificate for {0} - has private key {1}".ToFormat(c.SubjectName.Name, c.HasPrivateKey));
}
var userStore = new X509Store(StoreLocation.CurrentUser);
userStore.Open(OpenFlags.ReadOnly);
foreach (X509Certificate2 c in userStore.Certificates)
{
_log.Debug("user: certificate for {0} - has private key {1}".ToFormat(c.SubjectName.Name, c.HasPrivateKey));
}
Никогда не вижу сертификат в хранилище службы Windows.Если я добавлю сертификат в хранилище сертификатов локального компьютера, служба Windows увидит этот сертификат.
Все эти модные инструменты в mmc для добавления сертификатов в сервисные хранилища должны иметь цель.