Makecert.exe(인증서 작성 도구)
업데이트: 2011년 4월
인증서 작성 도구를 사용하면 테스트 전용 X.509 인증서를 생성하고, 디지털 서명에 대한 공용 및 개인 키 쌍을 만들어 인증서 파일에 저장할 수 있습니다. 또한, 키 쌍을 지정된 게시자의 이름과 연결하고, 사용자 지정 이름을 해당 키 쌍의 공용 부분에 바인딩하는 X.509 인증서를 만들 수 있습니다.
Makecert.exe에는 기본 옵션과 확장 옵션이 있습니다. 기본 옵션은 인증서를 만드는 데 가장 일반적으로 사용되는 옵션이며, 확장 옵션을 사용하면 보다 많은 융통성이 제공됩니다.
이 도구를 사용하여 생성한 인증서 개인 키를 .snk 파일에 저장해서는 안 됩니다. 개인 키를 저장해야 하는 경우에는 키 컨테이너를 사용해야 합니다. 키 컨테이너에서 개인 키를 저장하는 방법에 대한 자세한 내용은 방법: 키 컨테이너에 비대칭 키 저장를 참조하십시오.
참고
인증서 저장소를 사용하여 인증서를 안전하게 저장해야 합니다.이 도구에서 사용하는 .snk 파일은 보호되지 않는 방법으로 개인 키를 저장합니다.새로 만들거나 가져온 .snk 파일을 사용하거나 제거할 때는 보안에 주의해야 합니다.
이 도구는 Visual Studio 및 Windows SDK와 함께 자동으로 설치됩니다. 도구를 실행하려면 Visual Studio 명령 프롬프트 또는 Windows SDK 명령 프롬프트(CMD 셸)를 사용하는 것이 좋습니다. 이러한 유틸리티를 사용하면 설치 폴더를 탐색하지 않고도 도구를 쉽게 실행할 수 있습니다. 자세한 내용은 Visual Studio 및 Windows SDK 명령 프롬프트을 참조하십시오.
컴퓨터에 Visual Studio를 설치한 경우 작업 표시줄에서 Start, All Programs, Visual Studio, Visual Studio Tools 및 Visual Studio Command Prompt를 차례로 클릭합니다.
또는
컴퓨터에 Windows SDK를 설치한 경우 작업 표시줄에서 Start, All Programs 및 Windows SDK의 폴더를 차례로 클릭한 다음 Command Prompt(또는 CMD Shell)를 클릭합니다.
명령 프롬프트에 다음과 같이 입력합니다.
makecert [options] outputCertificateFile
인수 |
설명 |
---|---|
outputCertificateFile |
테스트용 X.509 인증서가 작성되는 .cer 파일의 이름을 나타냅니다. |
기본 옵션
Option |
설명 |
---|---|
-n 이름 |
주체의 인증서 이름을 지정합니다. 이 이름은 X.500 표준에 맞아야 합니다. 가장 간단한 방법은 이름 앞에 CN=을 붙여 큰따옴표로 묶는 것입니다(예: -n "CN=myName"). |
-pe |
생성된 개인 키를 내보낼 수 있도록 표시합니다. 이렇게 하면 개인 키를 인증서에 포함할 수 있습니다. |
-sk keyname |
주체의 개인 키가 들어 있는 키 컨테이너 위치를 지정합니다. 키 컨테이너가 없으면 키 컨테이너가 새로 만들어집니다. |
-sr location |
주체의 인증서 저장소 위치를 지정합니다. 위치는 currentuser(기본값) 또는 localmachine일 수 있습니다. |
-ss store |
주체의 출력 인증서를 저장하는 인증서 저장소 이름을 지정합니다. |
-# number |
1에서 2,147,483,647까지의 일련 번호를 지정합니다. 기본값은 Makecert.exe에 의해 생성된 고유 값입니다. |
-$ authority |
인증서의 서명 기관을 지정합니다. commercial(상업적 소프트웨어 게시자가 사용하는 인증서의 경우)과 individual(개인 소프트웨어 게시자가 사용하는 인증서의 경우) 중 하나로 설정해야 합니다. |
-? |
이 도구의 명령 구문 및 기본 옵션 목록을 표시합니다. |
-! |
이 도구의 명령 구문 및 확장 옵션 목록을 표시합니다. |
확장 옵션
Option |
설명 |
---|---|
-a 알고리즘 |
서명 알고리즘을 지정합니다. 알고리즘은 md5, sha1 (기본값), sha256, sha384 또는 sha512여야 합니다. |
-b mm/dd/yyyy |
유효 기간의 시작 날짜를 지정합니다. 기본값으로 현재 날짜가 지정됩니다. |
-crl |
인증서 대신 CRL(인증서 해지 목록)을 생성합니다. |
-cy certType |
인증서 종류를 지정합니다. 유효한 값은 end(최종 엔터티의 경우), authority(인증 기관의 경우)입니다. |
-e mm/dd/yyyy |
유효 기간의 끝 날짜를 지정합니다. 기본값은 12/31/2039 11:59:59 GMT로 설정됩니다. |
-eku oid[,oid…] |
향상된 키 용도 OID(개체 식별자) 목록을 쉼표로 구분하여 인증서에 삽입합니다. |
-h number |
해당 인증서 아래 트리의 최대 높이를 지정합니다. |
-ic 파일 |
발급자의 인증서 파일을 지정합니다. |
-ik keyName |
발급자의 키 컨테이너 이름을 지정합니다. |
-iky keytype |
발급자의 키 형식이 signature(키가 디지털 서명에 사용 중임을 나타냄), exchange(키가 키 암호화 및 키 교환에 사용 중임을 나타냄) 또는 공급자 형식을 나타내는 정수 중 하나가 되도록 지정합니다. 기본적으로 교환 키에 1을, 서명 키에 2를 전달할 수 있습니다. |
-in 이름 |
발급자의 인증서 일반 이름을 지정합니다. |
-ip provider |
발급자의 CryptoAPI 공급자 이름을 지정합니다. CryptoAPI 공급자 이름에 대한 자세한 내용은 –sp 옵션을 참조하십시오. |
-ir location |
발급자의 인증서 저장소 위치를 지정합니다. 위치는 currentuser(기본값) 또는 localmachine일 수 있습니다. |
-is store |
발급자의 인증서 저장소 이름을 지정합니다. |
-iv pvkFile |
발급자의 개인 키(.pvk) 파일을 지정합니다. |
-iy type |
발급자의 CryptoAPI 공급자 종류를 지정합니다. CryptoAPI 공급자 종류에 대한 자세한 내용은 –sy 옵션을 참조하십시오. |
-l link |
정책 정보에 연결합니다(예: URL). |
-len number |
생성된 키 길이를 비트 단위로 지정합니다. |
-m number |
인증서 유효 기간을 월 단위로 지정합니다. |
-nscp |
Netscape 클라이언트의 권한 부여 확장을 포함합니다. |
-r |
자체 서명 인증서를 만듭니다. |
-sc 파일 |
주체의 인증서 파일을 지정합니다. |
-sky keytype |
제목의 키 형식이 signature(키가 디지털 서명에 사용 중임을 나타냄), exchange(키가 키 암호화 및 키 교환에 사용 중임을 나타냄) 또는 공급자 형식을 나타내는 정수 중 하나가 되도록 지정합니다. 기본적으로 교환 키에 1을, 서명 키에 2를 전달할 수 있습니다. |
-sp provider |
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\Defaults\Provider의 레지스트리 하위 키에 정의되어야 하는 주체의 CryptoAPI 공급자 이름을 지정합니다. –sp 및 –sy가 모두 제시되면 CryptoAPI 공급자의 형식은 공급자 하위 키의 Type 값에 해당해야 합니다. |
-sv pvkFile |
주체의 개인 키(.pvk) 파일을 지정합니다. 개인 키 파일이 하나도 없으면 새로 만들어집니다. |
-sy type |
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\Defaults\Provider Types의 레지스트리 하위 키에 정의되어야 하는 주체의 CryptoAPI 공급자 유형을 지정합니다. –sy 및 –sp가 모두 제시되면 CryptoAPI 공급자의 이름은 공급자 형식 하위 키의 Name 값에 해당해야 합니다. |
-tbs |
서명할 CRL 파일 또는 인증서를 지정합니다. |
예제
다음 명령은 기본 테스트 루트에서 발급하는 테스트 인증서를 만들어 testCert.cer에 씁니다.
makecert testCert.cer
다음 명령은 기본 테스트 루트에서 발급하는 인증서를 만들어 인증서 저장소에 저장합니다.
makecert -ss testCertStore
다음 명령은 기본 테스트 루트에서 발급하는 인증서를 만들어 인증서 저장소에 저장합니다. 인증서가 currentuser 저장소에 명시적으로 저장됩니다.
makecert -ss testCertStore -sr currentuser
다음 명령을 사용하여 주체의 키 컨테이너 및 인증서 주체의 X.500 이름을 사용하여 테스트용 인증서를 만들고 이를 textXYZ.cer에 씁니다.
makecert -sk XYZ -n "CN=XYZ Company" testXYZ.cer
다음 명령은 기본 테스트 루트에서 발급하는 인증서를 만들고 .pvk 파일을 만든 다음 인증서를 저장소와 파일로 출력합니다.
makecert -sv testCert.pvk -ss testCertStore testCert.cer
다음 명령은 기본 테스트 루트에서 발급하는 인증서를 만들고 키 컨테이너를 만든 다음 인증서를 저장소와 파일로 출력합니다.
makecert -sk myTestKey -ss testCertStore testCert.cer
다음 명령은 자체 서명 인증서를 만들고, 주체 이름으로 "CN=XYZ Company"를 지정하고, 유효 기간의 시작 및 끝을 지정하고, my 저장소에 키를 배치하고, 키를 지정 및 교환하고, 내보낼 수 있는 개인 키를 만듭니다.
makecert -r -pe -n "CN=XYZ Company" -b 01/01/2005 -e 01/01/2010 -sky exchange -ss my
다음 명령은 URL이 www.example.com인 웹 서버에서 SSL(Secure Sockets Layer)을 사용하는 웹 응용 프로그램을 테스트하는 데 사용할 수 있는 자체 서명된 인증서를 만듭니다. –eku 옵션으로 정의된 OID는 인증서를 SSL 서버 인증서로 식별합니다. 인증서는 my 저장소에 저장되어 있으며 사용자가 아닌 컴퓨터 수준에서 사용할 수 있습니다. 인증서의 개인 키를 내보낼 수 있으며 2010년 5월10일에서 2011년 12월 22일까지 유효합니다.
Makecert –r –pe –n CN="www.example.com" –b 05/10/2010 –e 12/22/2011 –eku 1.3.6.1.5.5.7.3.1 –ss my –sr localmachine -sky exchange –sp "Microsoft RSA SChannel Cryptographic Provider" –sy 12
다음 명령은 인증서를 만들어 저장소에 저장합니다. 다음 명령은 기본 테스트 루트를 사용하여 인증서를 만들어 저장소에 저장합니다. 두 번째 명령은 새로 만든 인증서를 사용하여 다른 인증서를 만들고 두 번째 인증서를 다른 저장소에 저장합니다.
makecert -sk myTestKey -ss testCertStore
makecert -is testCertStore -ss anotherTestStore
다음 명령은 인증서를 만들어 저장소에 저장합니다. 첫 번째 명령은 my 저장소에 인증서를 저장하고, 두 번째 명령은 새로 만든 인증서를 사용하여 다른 인증서를 만듭니다. my 저장소에 인증서가 두 개 이상 있기 때문에 두 번째 명령은 일반 이름을 사용하여 첫 번째 인증서를 식별합니다.
makecert -sk myTestKey -n "CN=XXZZYY" -ss my
makecert -is my -in "XXZZYY" -ss anotherTestStore
다음 명령은 인증서를 만들어 파일과 저장소에 저장합니다. 다음 명령은 기본 테스트 루트를 사용하여 인증서를 만들어 my 저장소와 파일에 저장합니다. 두 번째 명령은 새로 만든 testCert.cer 인증서를 사용하여 다른 인증서를 만듭니다. my 저장소에 인증서가 두 개 이상 있기 때문에 두 번째 명령은 인증서 파일 이름을 사용하여 첫 번째 인증서를 고유하게 식별합니다.
makecert -sk myTestKey -n "CN=XXZZYY" -ss my testCert.cer
makecert -is my -ic testCert.cer -ss anotherTestStore
참고 항목
참조
Visual Studio 및 Windows SDK 명령 프롬프트
기타 리소스
변경 기록
날짜 |
변경 내용 |
이유 |
---|---|---|
2011년 4월 |
Visual Studio 및 Windows SDK 명령 프롬프트 사용에 대한 정보를 추가했습니다. |
향상된 기능 관련 정보 |
2010년 5월 |
광범위하게 수정되었습니다. |
고객 의견 |