본문 바로가기
개발언어/C#.NET

ClickOnce 인증서 작성 도구 Makecert.exe 다운로드

by 엔돌슨 2011. 11. 24.
반응형
인증서 작성 도구(Makecert.exe) 다운로드 설치하여 인증서를 만들어 보았습니다. Microsoft Windows SDK for Windows 7 and .NET Framework 4 을 설치하면 Makecert.exe가 포함되어 있습니다. 모든 ClickOnce 배포는 디지털 인증서를 사용하여 서명해야 합니다. 그래서 인증서를 만들어야 합니다. 1년 만기 인증서로 되어있어 불편한데 기간을 무제한으로 늘려 생성해주면 됩니다.



서명을 작성하였지만 1년단위로 생성이 되어 만료되면 다시 배포서버에서 재설치를 하여야 업데이트가 되는 불편한점이 있다.

준비과정 )

1. Makecert.exe 가 포함된 SDK을 설치하자.
아래의 링크에서 다운로드가 가능하다.
http://msdn.microsoft.com/en-us/windowsserver/bb980924.aspx
http://gallery.technet.microsoft.com/Certificate-Creation-tool-5b7c054d


2. 만료기간이 긴 테스트 인증서 만들기

Makecert 파일은 아래의 경로에 존재합니다.
C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin

시작 > CMD 창
C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin 경로로 이동을 합니다.

makecert.exe -r -pe -n "CN=DEMO_Key" -b 01/01/2011 -e 12/31/2020 -sky exchange -ss my
DEMO_Key : 인증서 명칭
01/01/2011 : 인증 시작일
12/31/2020 : 인증 종료일



3. 인증서 확인
CDM창 >
certmgr.exe
또는 
프로젝트 > 속성 > 서명 탭 > "저장소에서 선택"클릭

4. 인증서 내보내기 및 가져오기로 프로젝트에 있는 인증서를 갱신한다.



프로젝트 > 속성 > 서명 탭 > "저장소에서 선택" 클릭
인증서 선택을 합니다. 이렇게 하면 만료 날짜를 길게 수정할 수있습니다.

참고 : http://imakeworld.egloos.com/10666823

저장소에서 선택하기 를 눌러서 인증서를 선택해서 바꾸어 주어야 합니다.


참고사항 및 주의사항

[테스트 인증서 만들기]을 눌러서 인증서를 만든다. pfx라는 파일로 인증서가 생성이 된다. 
서명을 넣게 되면 다른 PC 또는 서명이 갱신되게 되면 같은 프로그램이지만 다른 프로그램으로 인식하기 때문에 업데이트 체크를 못한다. 변경된 서명으로 설치한 후에는 업데이트 체크를 할 수 있다.


인증서 작성도구의 옵션 설정
http://msdn.microsoft.com/ko-kr/library/bfsktky3%28VS.80%29.aspx


참고사이트 
http://msdn.microsoft.com/ko-kr/library/bb384246.aspx
http://www.sysnet.pe.kr/Default.aspx?mode=2&sub=0&detail=1&wid=353
http://blog.naver.com/iamjun7/110044505529


관련 MSDN 내용

Authenticode는 응용 프로그램 게시자의 인증을 확인하는 디지털 인증서를 통해 응용 프로그램 코드에 서명하는 데 업계 표준 암호화를 사용하는 Microsoft 기술입니다. 응용 프로그램 배포에 Authenticode를 사용하면 ClickOnce에서 악의적인 제3자가 바이러스나 다른 해로운 프로그램을 신뢰할 수 있는 확인된 소스에서 가져온 올바른 프로그램으로 속이는 "트로이 목마" 현상을 방지할 수 있습니다. 모든 ClickOnce 배포는 디지털 인증서를 사용하여 서명해야 합니다.

다음 단원에서는 Authenticode에 사용되는 다양한 형식의 디지털 인증서, CA(인증 기관)를 사용하여 인증서의 유효성을 검증하는 방법, 인증서의 타임스탬프 역할 및 인증서에 사용할 수 있는 저장 방법에 대해 설명합니다.

Authenticode 및 코드 서명

디지털 인증서는 인증서가 발행되는 게시자 및 인증서를 발행하는 에이전시를 설명하는 메타데이터와 함께 암호화 공개/개인 키 쌍이 포함되는 파일입니다.

다양한 형식의 Authenticode 인증서가 있으며 각 인증서는 서로 다른 서명 형식에 대해 한 번 구성됩니다. ClickOnce 응용 프로그램의 경우 코드 서명에 유효한 Authenticode 인증서가 있어야 하며 디지털 전자 메일 인증서 같은 다른 형식의 인증서로 ClickOnce 응용 프로그램에 서명하려고 하면 응용 프로그램이 작동하지 않습니다. 자세한 내용은 Introduction to Code Signing(http://msdn.microsoft.com/library/default.asp?url=/workshop/security/authcode/intro_authenticode.asp)을 참조하십시오.

다음과 같은 세 가지 방법 중 하나로 코드 서명용 인증서를 얻을 수 있습니다.

  • 인증서 공급업체에서 인증서를 구입합니다.

  • 디지털 인증서를 만드는 작업을 담당하는 조직의 그룹에서 인증서를 받습니다.

  • .NET Framework SDK(Software Development Kit)에 포함된 MakeCert.exe를 사용하여 자체 인증서를 생성합니다.

인증 기관 사용이 사용자에게 도움이 되는 방식

  • MakeCert.exe 유틸리티를 사용하여 생성된 인증서는 일반적으로 "자체 인증서" 또는 "테스트 인증서"라고 합니다. 이런 종류의 인증서는 .NET Framework에서 .snk 파일이 작동하는 방식과 동일한 방식으로 작동하며 공개/개인 암호화 키 쌍으로만 구성되고 게시자에 대한 안정성을 확인할 수 있는 정보는 포함하지 않습니다. 자체 인증서를 사용하여 인트라넷에서 높은 신뢰 수준으로 ClickOnce 응용 프로그램을 배포할 수 있지만 이러한 응용 프로그램이 클라이언트 컴퓨터에서 실행되면 ClickOnce는 이러한 응용 프로그램을 "알 수 없는 게시자"에서 들어오는 것으로 식별합니다. 기본적으로 자체 인증서로 서명되고 인터넷을 통해 배포된 ClickOnce 응용 프로그램은 신뢰할 수 있는 응용 프로그램 배포를 사용할 수 없습니다.

  • 이와 다르게 인증서 공급업체나 엔터프라이즈 내의 부서와 같은 CA에서 인증서를 받을 경우 해당 인증서는 사용자에게 보다 강력한 보안을 제공합니다. 이 인증서는 서명된 소프트웨어의 게시자를 식별하고 인증서에 서명한 CA를 통해 확인하여 해당 ID를 확인합니다. CA가 루트 기관이 아닌 경우 Authenticode는 다시 루트 기관으로 "체인"되어 해당 CA가 인증서를 발행하도록 인증되었는지 확인합니다. 보다 강력한 보안을 위해 가능하면 항상 CA가 발행한 인증서를 사용해야 합니다.

자체 인증서 생성에 대한 자세한 내용은 인증서 작성 도구(Makecert.exe)를 참조하십시오.

타임스탬프를 통해 의도하지 않은 만료를 방지하는 방법

인증서가 더 강력한 보안을 제공하더라도 권한이 없는 사용자가 올바른 소유자로부터 인증서 및 해당 암호를 얻을 수 있습니다. 기본적으로 CA가 발생한 인증서는 12개월 동안만 유효합니다. 따라서 인증서 소유자는 CA를 통해 ID를 다시 확인하여 손상된 인증서가 짧은 기간 동안만 사용되도록 합니다.

일반적으로 인증서 만료는 12개월마다 ClickOnce 응용 프로그램에 다시 서명해야 함을 의미합니다. Authenticode에서는 타임스탬프를 지원하는 이러한 필요성을 줄입니다. 인증서를 사용하여 ClickOnce 배포에 서명하면 ClickOnce는 서명 날짜 및 시간을 기록하고 이 기록을 배포의 디지털 서명에 포함합니다. 인증서가 아직 유효할 때 배포에 서명한 경우에만 나중에 인증서가 만료되더라도 ClickOnce를 통해 응용 프로그램을 실행할 수 있습니다.

ClickOnce 배포, Mage.exe 및 MageUI.EX를 만드는 Visual Studio 및 Windows SDK(소프트웨어 개발 키트) 도구는 모두 타임스탬프를 지원합니다.

인증서 저장

  • 인증서를 .pfx 파일로 파일 시스템에 저장하거나 키 컨테이너 내부에 저장할 수 있습니다. Windows 도메인의 사용자는 여러 개의 키 컨테이너를 가질 수 있습니다. 대신 .pfx로 저장하도록 지정하지 않으면 기본적으로 MakeCert.exe는 인증서를 개인 키 컨테이너에 저장합니다. ClickOnce 배포를 만드는 Windows SDK 도구인 Mage.exe 및 MageUI.exe를 통해 두 가지 방식으로 저장된 인증서를 사용할 수 있습니다.