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 시스템 디렉터리에 있으므로 Visual Studio용 개발자 명령 프롬프트를 연 경우에도 명령줄에 입력 certmgr
하면 인증서 MMC 스냅인이 로드될 수 있습니다. 이는 스냅인 경로가 환경 변수의 인증서 관리자 도구 Path
경로 앞에 있기 때문에 발생합니다. 이 문제가 발생하면 실행 파일의 경로(예 : %ProgramFiles(x86)%\Windows Kits\10\bin\10.0.22000.0\arm64\certmgr.exe 지정하여 Certmgr.exe 명령을 실행할 수 있습니다.
X.509 인증서에 대한 개요는 인증서 작업을 참조하세요.
구문
명령 프롬프트에서 다음을 입력합니다.
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을 인증서 저장소에서 삭제합니다. |
/e encodingType | 인증서 인코딩 형식을 지정합니다. 기본값은 X509_ASN_ENCODING 입니다. |
/f dwFlags | 저장소 열기 플래그를 지정합니다. 저장소 열기 플래그는 CertOpenStore에 전달되는 dwFlags 매개 변수입니다. 기본값은 CERT_SYSTEM_STORE_CURRENT_USER이고, 이 옵션은 /y 옵션이 사용된 경우에만 고려됩니다. |
/h[elp] | 이 도구의 명령 구문 및 옵션을 표시합니다. |
/n nam | 추가, 삭제 또는 저장할 인증서의 일반 이름을 지정합니다. 이 옵션은 인증서에 대해서만 사용할 수 있으며, CTL 또는 CRL에 대해서는 사용할 수 없습니다. |
/put | 인증서 저장소의 X.509 인증서, CTL 또는 CRL을 파일에 저장합니다. 이 파일은 X.509 형식으로 저장됩니다. /7 옵션을 /put 옵션과 함께 사용하여 파일을 PKCS #7 형식으로 저장할 수 있습니다. /put 옵션 다음에는 /c, /CTL 또는 /CRL 중 하나를 사용해야 하며, /all 옵션은 /put과 함께 사용할 수 없습니다. |
/r location | 시스템 저장소의 레지스트리 위치를 식별합니다. 이 옵션은 /s 옵션을 지정하는 경우에만 고려됩니다. 위치는 다음 중 하나여야 합니다. - currentUser 는 인증서 저장소가 HKEY_CURRENT_USER 키 아래에 있음을 나타냅니다. 기본값입니다.- localMachine 은 인증서 저장소가 HKEY_LOCAL_MACHINE 키 아래에 있음을 나타냅니다. |
/s | 인증서 저장소가 시스템 저장소임을 나타냅니다. 이 옵션을 지정하지 않으면 저장소가 StoreFile로 간주됩니다. |
/sha1 sha1Hash | 추가, 삭제 또는 저장할 인증서, CTL 또는 CRL의 SHA1 해시를 지정합니다. |
/v | 세부 정보 표시 모드를 지정합니다. 즉, 인증서, CTL 및 CRL에 대한 자세한 정보를 표시합니다. 이 옵션은 /add, /del 또는 /put 옵션과 함께 사용할 수 없습니다. |
/y provider | 저장소 공급자의 이름을 지정합니다. |
/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을 인증서 저장소에 복사하는 가져오기 마법사를 사용할 수 있습니다.
sourceStorename
및 destinationStorename
매개 변수에 대한 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
참고 항목
.NET