2011-10-03 4 views
12

certmgr.msc의 마법사를 사용하여 인증서 저장소에 인증서를 설치할 수 있습니다 (마우스 오른쪽 단추로 클릭하여 설치). 누구든지 "깨끗하게"마법사/코드 (pref.)/스크립트를 사용하여 모든 인증서를 제거하는 방법을 알고 있습니까?Store에서 인증서를 완전히 제거하는 방법

LocalMachine 및/또는 CurrentUser Store에서 잔여 물을 남기지 않고 모든 항목 (이전에 설치 한 항목)을 제거 할 수 있기를 원합니다.

감사합니다.

답변

12

당신은 인증서 저장소에서 인증서를 삭제하려면 닷넷 프레임 워크의 X509Store와 releated 클래스를 시도 할 수 있습니다. 다음 코드 예제에서는 현재 사용자의 내 저장소에서 인증서를 삭제합니다

// 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(); 

BEGIN 편집 : 코드 샘플이를 제거하는 방법을 보여주는 내 대답을 업데이 트했습니다 코멘트 섹션에서 의견을 바탕으로 인증서와 체인의 모든 인증서 :

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); 

최종 편집

희망이 도움이됩니다.

+1

는 그것이 체인 thoese를 포함하여 컴퓨터에서 모든 인증서를 제거합니다 있는지 확인 것인가? – daehaai

+0

여기에 또 하나의 질문이 있습니다. 마법사를 사용하여 설치하는 경우 "유형에 따라 인증서 자동 저장"옵션이 있습니다. 이 코드로 부식 저장소에 cert를 어떻게 설치 하시겠습니까? – daehaai

+0

@activebiz : 아니요, Remove() 함수는 인증서 체인의 인증서를 제거하지 않습니다. 체인에서 인증서를 삭제하는 방법을 보여주기 위해 샘플로 내 대답을 업데이트했습니다. – Hans

1

certmgr.exe를 시도 할 수 있습니다. 다음 명령은 cn이 'commoncertname'인 인증서를 로컬 사용자 personal \ certificates 저장소에서 제거합니다.

.\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

UPDATE

뜨아! 나는 이것을 시도하지 않았다는 것을 믿을 수 없다! 다음으로 인증서를 제거 할 수 있습니다

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

오래된 스레드지만, 아래 링크 된 게시물을 따라 Windows 7을 사용하면 잘 작동합니다 ... 관리 콘솔을 사용합니다.

  1. 시작 -> 실행을 -> mmc.exe를
  2. 파일을 클릭 한이 ->
  3. "컴퓨터 계정"을 추가를 클릭
  4. 선택 인증서 "스냅인 추가/제거"다음을 클릭합니다.
  5. 는 "로컬 컴퓨터"를 선택, 인증서 (로컬 컴퓨터), 왼쪽 창에서 MMC
  6. 에 당신을 데려 확대해야 마침
  7. 확인을 클릭, 클릭
  8. 나열된 인증서로 무엇을 것 마십시오. ..

출처 : http://windowssecrets.com/top-story/certificate-cleanup-for-most-personal-computers/

+2

이 링크가 질문에 대답 할 수 있지만 여기에 답변의 핵심 부분을 포함하고 참조 용 링크를 제공하는 것이 좋습니다. 링크 된 페이지가 변경되면 링크 전용 답변이 유효하지 않게 될 수 있습니다. –