Подтвердить что ты не робот

Как удалить сертификат из магазина

Вы можете установить сертификат в хранилище сертификатов с помощью мастера в certmgr.msc(щелкните правой кнопкой мыши по установке)? Кто-нибудь знает, как "чисто" удалить весь сертификат либо с помощью мастера/кода (pref.)/ Script?

Я хочу, чтобы убрать все (что я установил ранее) из LocalMachine и/или CurrentUser Store, не оставляя никаких остатков.

Спасибо

4b9b3361

Ответ 1

Вы можете попробовать X509Store и освободить классы в .Net Framework, чтобы удалить сертификат из хранилища сертификатов. Следующий пример кода удаляет сертификат от текущего пользователя My store:

// Use other store locations if your certificate is not in the current user store.
X509Store store = new X509Store(StoreName.My, StoreLocation.CurrentUser);
store.Open(OpenFlags.ReadWrite | OpenFlags.IncludeArchived);

// You could also use a more specific find type such as X509FindType.FindByThumbprint
X509Certificate2Collection col = store.Certificates.Find(X509FindType.FindBySubjectName, "yoursubjectname", false);

foreach (var cert in col)
{
  Console.Out.WriteLine(cert.SubjectName.Name);

  // Remove the certificate
  store.Remove(cert);        
}
store.Close();

НАЧАТЬ РЕДАКТИРОВАНИЕ: Основываясь на комментариях в разделе комментариев, я обновил свой ответ с помощью примера кода, показывающего, как удалить сертификат и все сертификаты в цепочке:

  X509Certificate2Collection col = store.Certificates.Find(X509FindType.FindBySubjectName, "yoursubjectname", false);

  X509Chain ch = new X509Chain();
  ch.Build(col[0]);
  X509Certificate2Collection allCertsInChain = new X509Certificate2Collection();

  foreach (X509ChainElement el in ch.ChainElements)
  {
    allCertsInChain.Add(el.Certificate);
  }

  store.RemoveRange(allCertsInChain);

END EDIT

Надеюсь, это поможет.

Ответ 2

Старый поток, но я просто следил за связанным сообщением ниже, используя Win 7, и он работал хорошо... Использует консоль управления.

  • Пуск → Выполнить → mmc.exe
  • Нажмите "Файл" → "Добавить/удалить оснастку"
  • Выберите "Сертификаты", нажмите "Добавить"
  • Выберите "Учетная запись компьютера", нажмите "Далее".
  • Выберите "Локальный компьютер", нажмите "Готово"
  • Нажмите "ОК", и вы вернетесь в MMC
  • В левой панели разверните Сертификаты (локальный компьютер)
  • Сделайте то, что вы сделаете с указанными сертификатами...

Источник: http://windowssecrets.com/top-story/certificate-cleanup-for-most-personal-computers/

Ответ 3

Вы можете попробовать certmgr.exe. Следующая команда удаляет сертификат с помощью cn "commoncertname" из локального хранилища личных данных пользователей.

.\certmgr.exe -del -n commoncertname -c -s -r currentuser my

Дополнительную информацию о certmgr.exe можно найти здесь: http://msdn.microsoft.com/en-us/library/windows/desktop/aa376553%28v=vs.85%29.aspx

ОБНОВЛЕНИЕ

Duh! Не могу поверить, что я не пробовал! Вы можете удалить сертификаты со следующим:

Get-ChildItem Cert:\CurrentUser\My | Where-Object {$_.Subject -eq 'CN=certCN'} | Remove-Item