Как удалить сертификат из магазина
Вы можете установить сертификат в хранилище сертификатов с помощью мастера в certmgr.msc(щелкните правой кнопкой мыши по установке)? Кто-нибудь знает, как "чисто" удалить весь сертификат либо с помощью мастера/кода (pref.)/ Script?
Я хочу, чтобы убрать все (что я установил ранее) из LocalMachine и/или CurrentUser Store, не оставляя никаких остатков.
Спасибо
Ответы
Ответ 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