Certmgr.exe(인증서 관리자 도구)

인증서 관리자 도구(Certmgr.exe)를 사용하면 인증서, CTL(인증서 신뢰 목록) 및 CRL(인증서 해지 목록)을 관리할 수 있습니다.

인증서 관리자는 Windows 10 SDK와 함께 설치됩니다. 도구를 시작하려면 Visual Studio 개발자 명령 프롬프트 또는 Visual Studio 개발자 PowerShell을 사용합니다.

참고

인증서 관리자 도구(Certmgr.exe)는 명령줄 유틸리티인 반면, 인증서(Certmgr.msc)는 MMC(Microsoft Management Console) 스냅인입니다. Certmgr.msc는 일반적으로 Windows 시스템 디렉터리에 있으므로 명령줄에 를 입력 certmgr 하면 Visual Studio용 개발자 명령 프롬프트를 연 경우에도 인증서 MMC 스냅인을 로드할 수 있습니다. 스냅인 경로가 환경 변수의 인증서 관리자 도구 Path 경로 앞에 있기 때문에 이 문제가 발생합니다. 이 문제가 발생하는 경우 실행 파일의 경로를 지정하여 Certmgr.exe 명령을 실행할 수 있습니다(예: %ProgramFiles(x86)%\Windows Kits\10\bin\10.0.22000.0\arm64\certmgr.exe.

X.509 인증서에 대한 개요는 인증서 작업을 참조하세요.

Syntax

명령 프롬프트에서 다음을 입력합니다.

certmgr [/add | /del | /put] [options]
[/s[/r registryLocation]] [sourceStorename]
[/s[/r registryLocation]] [destinationStorename]

매개 변수

인수 설명
sourceStorename 추가, 삭제, 저장 또는 표시할 CRL 또는 CTL, 기존 인증서를 포함하는 인증서 저장소입니다. 이는 저장소 파일 또는 시스템 저장소가 될 수 있습니다.
destinationStorename 출력 인증서 저장소 또는 파일을 나타냅니다.
옵션 설명
/add 인증서, CTL 및 CRL을 인증서 저장소에 추가합니다.
/all /add 옵션과 함께 사용하면 모든 항목을 추가합니다. /del 옵션과 함께 사용하면 모든 항목을 삭제합니다. /add 또는 /del 옵션 없이 사용하면 모든 항목을 표시합니다. /all 옵션은 /put과 함께 사용할 수 없습니다.
/c /add 옵션과 함께 사용하면 인증서를 추가합니다. /del 옵션과 함께 사용하면 인증서를 삭제합니다. /put 옵션과 함께 사용하면 인증서를 저장합니다. /add, /del 또는 /put 옵션 없이 사용하면 인증서를 표시합니다.
/CRL /add와 함께 사용하면 CRL을 추가합니다. /del과 함께 사용하면 CRL을 삭제합니다. /put과 함께 사용하면 CRL을 저장합니다. /add, /del 또는 /put 옵션 없이 사용하면 CRL을 표시합니다.
/CTL /add와 함께 사용하면 CTL을 추가합니다. /del과 함께 사용하면 CTL을 삭제합니다. /put과 함께 사용하면 CTL을 저장합니다. /add, /del 또는 /put 옵션 없이 사용하면 CTL을 표시합니다.
/del 인증서, CTL 및 CRL을 인증서 저장소에서 삭제합니다.
/eencodingType 인증서 인코딩 형식을 지정합니다. 기본값은 X509_ASN_ENCODING입니다.
/fdwFlags 저장소 열기 플래그를 지정합니다. 저장소 열기 플래그는 CertOpenStore에 전달되는 dwFlags 매개 변수입니다. 기본값은 CERT_SYSTEM_STORE_CURRENT_USER이고, 이 옵션은 /y 옵션이 사용된 경우에만 고려됩니다.
/h[elp] 이 도구의 명령 구문 및 옵션을 표시합니다.
/nnam 추가, 삭제 또는 저장할 인증서의 일반 이름을 지정합니다. 이 옵션은 인증서에 대해서만 사용할 수 있으며, CTL 또는 CRL에 대해서는 사용할 수 없습니다.
/put 인증서 저장소의 X.509 인증서, CTL 또는 CRL을 파일에 저장합니다. 이 파일은 X.509 형식으로 저장됩니다. /7 옵션을 /put 옵션과 함께 사용하여 파일을 PKCS #7 형식으로 저장할 수 있습니다. /put 옵션 다음에는 /c, /CTL 또는 /CRL 중 하나를 사용해야 하며, /all 옵션은 /put과 함께 사용할 수 없습니다.
/r위치 시스템 저장소의 레지스트리 위치를 식별합니다. 이 옵션은 /s 옵션을 지정하는 경우에만 고려됩니다. 위치는 다음 중 하나여야 합니다.

- currentUser는 인증서 저장소가 HKEY_CURRENT_USER 키 아래에 있음을 나타냅니다. 기본값입니다.
- localMachine은 인증서 저장소가 HKEY_LOCAL_MACHINE 키 아래에 있음을 나타냅니다.
/s 인증서 저장소가 시스템 저장소임을 나타냅니다. 이 옵션을 지정하지 않으면 저장소가 StoreFile로 간주됩니다.
/sha1sha1Hash 추가, 삭제 또는 저장할 인증서, CTL 또는 CRL의 SHA1 해시를 지정합니다.
/v 세부 정보 표시 모드를 지정합니다. 즉, 인증서, CTL 및 CRL에 대한 자세한 정보를 표시합니다. 이 옵션은 /add, /del 또는 /put 옵션과 함께 사용할 수 없습니다.
/y공급자 저장소 공급자의 이름을 지정합니다.
/7 대상 저장소를 PKCS #7 개체로 저장합니다.
/? 이 도구의 명령 구문 및 옵션을 표시합니다.

설명

Certmgr.exe를 사용하여 다음과 같은 기본 기능을 수행할 수 있습니다.

  • 인증서, CTL 및 CRL을 콘솔에 표시합니다.
  • 인증서, CTL 및 CRL을 인증서 저장소에 추가합니다.
  • 인증서, CTL 및 CRL을 인증서 저장소에서 삭제합니다.
  • 인증서 저장소의 X.509 인증서, CTL 또는 CRL을 파일에 저장합니다.

Certmgr.exe를 사용하면 다음과 같은 두 가지 형식의 인증서 저장소를 사용하여 작업할 수 있습니다. StoreFile 및 시스템 저장소. 인증서 저장소 유형을 지정할 필요는 없습니다. Certmgr.exe 저장소 유형을 식별하고 적절한 작업을 수행할 수 있습니다.

옵션을 지정하지 않고 Certmgr.exe를 실행하면 명령줄에서도 사용할 수 있는 인증서 관리 작업을 돕는 GUI인 certmgr.msc snap-in이 실행됩니다. 이 GUI를 통해 디스크의 인증서, CTL 및 CRL을 인증서 저장소에 복사하는 가져오기 마법사를 사용할 수 있습니다.

sourceStorenamedestinationStorename 매개 변수에 대한 X509Certificate 저장소의 이름을 다음 코드를 컴파일 및 실행하여 찾을 수 있습니다.

using System;
using System.Security.Cryptography.X509Certificates;

public class Example
{
   public static void Main()
   {
      foreach (var storeValue in Enum.GetValues(typeof(StoreName))) {
         X509Store store = new X509Store((StoreName) storeValue);
         store.Open(OpenFlags.ReadOnly);
         Console.WriteLine(store.Name);
      }
   }
}
Imports System.Security.Cryptography.X509Certificates

Module Example
    Public Sub Main()
        For Each storeValue In [Enum].GetValues(GetType(StoreName))
            Dim store As New X509Store(CType(storeValue, StoreName))
            store.Open(OpenFlags.ReadOnly)
            Console.WriteLine(store.Name)
        Next
    End Sub
End Module

자세한 내용은 인증서 작업을 참조하세요.

다음 명령을 사용하여 my라는 기본 시스템 저장소를 자세한 정보와 함께 표시합니다.

certmgr /v /s my

다음 명령을 사용하여 myFile.ext라는 파일에 있는 모든 인증서를 newFile.ext라는 새 파일에 추가합니다.

certmgr /add /all /c myFile.ext newFile.ext

다음 명령은 testcert.cer이라는 파일의 인증서를 my 시스템 저장소에 추가합니다.

certmgr /add /c testcert.cer /s my

다음 명령은 TrustedCert.cer이라는 파일의 인증서를 루트 인증서 저장소에 추가합니다.

certmgr /c /add TrustedCert.cer /s root

다음 명령을 사용하여 myCert시스템 저장소에 있는 my라는 일반 이름의 인증서를 newCert.cer이라는 파일에 저장합니다.

certmgr /add /c /n myCert /s my newCert.cer

다음 명령을 사용하여 my 시스템 저장소에 있는 모든 CTL을 삭제하고 그 결과로 만들어지는 저장소를 newStore.str이라는 파일에 저장합니다.

certmgr /del /all /ctl /s my newStore.str

다음 명령을 사용하여 my시스템 저장소의 인증서를 newFile 파일에 저장합니다. 그러면 my에 넣을 newFile의 인증서 번호를 입력하라는 메시지가 표시됩니다.

certmgr /put /c /s my newFile

참조