실행파일 디지털 서명하기


etc-image-0cert.zip


안녕하세요.

제가 프로그램을 만들어 배포하는데 다른 컴퓨터에서 실행하려고 하면 게시자없음으로 인해

악성 프로그램으로 인식되는 걸 알게되었습니다.

그래서 이를 해결하기 위해 디지털 서명을 해야한다는 것을 알게되었습니다.

인터넷에서 검색하던 중 간단하게 디지털 서명을 하는 방법을 알게되어 설명해보려고 합니다.


먼저 제가 첨부파일로 올린 cert.zip파일을 다운받아서 C:\에 압축을 해제합니다.

그러면 C:\에 cert폴더가 생깁니다.


이제 명령프롬프트를 관리자 권한으로 실행합니다.

명령프롬프트는 시작에 있습니다.


먼저 디렉토리를 C:\cert로 옮기기 위해 다음 명령을 입력합니다.

cd c:\cert


그다음 아래와 같이 입력하는데 NurimOnsemiro는 임의로 다르게 입력해도 됩니다.

makecert -n "CN=NurimOnsemiro" -r -sv  ca.pvk ca.cer

etc-image-1


그러면 위와 같은 창이 나타납니다.

개인 키 암호를 임의로 입력합니다.

하지만 기억해두시기 바랍니다.


이제 cer과 pvk파일이 cert폴더에 생성되었습니다.


이제 다음과 같이 입력합니다.


cert2spc.exe ca.cer ca.spc


그러면 spc파일이 생성됩니다.


certmgr.exe -add ca.cer -s -r localMachine root


위와 같이 입력하면 ca.cer을 인증기관으로 등록절차가 완료됩니다.


이제 인터넷 익스플로러를 실행한 후, 메뉴바에 도구 - 인터넷옵션 - 내용 - 인증서 - 신뢰할 수 있는 루트 인증기관에 보면 방금 등록한 인증기관이 보입니다.


 etc-image-2


저는 NurimOnsemiro로 등록하여 제대로 된 것을 확인하였습니다.


이제 다시 명령프롬프트로 돌아가서 입력합니다.


signtool signwizard


 etc-image-3


그럼 다음과 같이 창이 생성됩니다.


디지털 서명을 할 파일을 C:\cert폴더에 넣은 후 


디지털 서명 마법사에서 해당 파일을 선택합니다.


 etc-image-4


그리고 다음을 누릅니다.


 etc-image-5


사용자 지정을 선택하고 다음을 누릅니다.


 etc-image-6


오른쪽에 파일에서 선택을 클릭합니다.


 etc-image-7


오른쪽에 X.509인증서로 바꾼 후에 ca.cer을 선택합니다.


 etc-image-8


이제 다음을 클릭합니다.


 etc-image-9


디스크의 개인 키 파일에서 ca.pvk파일을 선택합니다.

그리고 다음을 누릅니다.


 etc-image-10


처음에 입력한 암호를 입력합니다.


 etc-image-11


sha1을 선택하고 다음을 누릅니다.


 etc-image-12


별다른 설정없이 다음을 누릅니다.


etc-image-13


설명이 필요하면 적고 없으면 다음을 누릅니다.

etc-image-14

타임스탬프를 추가할 일이 없으면 다음을 누릅니다.

 

etc-image-15

디지털 서명이 완료되었습니다.

마침을 눌러 암호를 한번더 입력하고 나면 완료됩니다.


etc-image-16


이제 디지털 서명이 등록되었습니다.

인터넷을 통해 배포할 때 악성코드로 인식되지 않게되었습니다.


이상입니다.


----------------------------------------------------------------

해당 디지털 서명을 해도 익스플로러에서 악성코드로 인식되는 것이 확인되었습니다.

신뢰된 인증기관에서 발급된 것이 아니라 그런듯합니다.



참고 : http://greenfishblog.tistory.com/199