728x90

<코드사인 하시기 전에 아래의 timestamp 거는 방법을 먼저 읽어 주세요>

참고)  pfx 파일로 인증서 파일을 받으신 경우, 아래 5번 이후부터 진행하시면 됩니다.

1. 다음 경로에서 pvkimprt 를 다운 받는다.
   http://office.microsoft.com/downloads/2000/pvkimprt.aspx

2. pvkimprt 를 통해 받은 spc , pvk 파일을 레지스트리로 import 시킨다.
   > pvkimprt -import nine4u.spc nine4u.pvk
   a. 비밀번호를 물어보는 창에서 개인키 비밀번호를 입력한다.
   b. 다음
   c. 인증서 종류 기준으로 인증서 저장소를 자동으로 선택 (default) 에 체크 -> 다음
   d. 마침.
   e. 이상으로 레지스트리에 인증서가 import 된다.
   확인: IE(브라우저) 에서 도구>인터넷옵션>내용>인증서 에서 개인탭을 보시면 발급대상에 추가된 인증서 확인가능

3. pvkimprt 를 통해 pfx 파일로 export 시킨다.
   > pvkimprt -pfx nine4u.spc nine4u.pvk
   a. 비밀번호를 물어보는 창에서 개인키 비밀번호를 입력한다.
   b. 다음
   c. 예, 개인키를 내보냅니다. (default) 에 체크 -> 다음
   d. 가능하면 인증 경로에 있는 인증서 모두 포함 (체크) 그외 체크 모두 없애고 다음
   e. 암호 , 암호확인 입력 후 다음
   f. 파일이름은 저장할 pfx 파일 이름을 입력합니다. (예: nine4u.pfx) 다음.
   g. 마침.


4. 레지스트리의 인증서 삭제
   a. IE(브라우저) 에서 도구 > 인터넷옵션 > 내용 > 인증서에서 개인탭의 인증서를 선택후 제거 합니다.

5. 3에서 pfx 로 export 시킨 파일을 다시 import
   a. IE(브라우저) 에서 도구> 인터넷옵션> 내용> 인증서 에서 가져오기
   b. 다음
   c. 저장된 pfx 파일을 찾아 입력 후 다음
   d. 암호 입력
      개인 키를 내보낼 수 있는 것으로 표시 에 체크
      다음
   e. 인증서 종류 기준으로 인증서 저장소를 자동으로 선택 체크 (default)
      다음
   f. 마침


6. 이제 VBA 프로젝트를 코드사인 합니다.
   a. Visual Basic Editor 를 open (엑셀에서 도구> 매크로)
   b. sign 하실 프로젝트를 선택합니다.
   c. 도구 > 디지털 서명
   d. 선택 버튼 누르시고 좀전에 import 하신 인증서를 찾아서 선택 후 확인.
   e. 확인
   f. vb editor 닫기 전에 저장.
   g. excel 닫기 전에 저장.

(꼭!!!! 참고) VBA signing 시 timestamp 걸기

코드사인 인증서는  인증서 발급시 해당 인증서의 유효기간이 있습니다.

코드사인시에 timestamp를 등록해 주지 않은 경우에 인증서 유효기간 만료후에 signing 된 매크로 등이 invalid 하게 표시됩니다.

이를 방지하기 위해 코드사인시에 반드시 timestamp를 등록할 수 있도록 아래의 작업을 먼저 해 주셔야 합니다.

VBeditor 로 매크로 사이닝시에.. 별도의 timestamp 를 등록하는 UI가 없습니다.
아래와 같이 직접 레지스트리를 수정하셔서 등록해 주셔야 합니다.

VBA Project를 사인시 아래 3개의 레지스트리값을 먼저 등록하시고, 사이닝을 하시면 timestamp가 등록됩니다.

HKEY_Current_User\Software\Microsoft\VBA\Security\TimeStampURL
HKEY_Current_User\Software\Microsoft\VBA\Security\TimeStampRetryCount
HKEY_Current_User\Software\Microsoft\VBA\Security\TimeStampRetryDelay

TimeStampURL : String 값으로 timestamp 서버 URL을 입력합니다.
                        TimeStampURL 은  다음 URL을 사용하시면 됩니다.
                        http://timestamp.verisign.com/scripts/timstamp.dll
                        (timstamp.dll <- time에 e 가 없습니다. 주의!!!)
TimeStampRetryCount : DWord 값으로 VB editor가 timestampurl 접속에 실패하는 경우 재시도 횟수를 입력합니다.
TimeStampRetryDelay : Dword VB editor 가 timestampUrl 접속에 retury 할때 delay 하는 시간을 입력합니다.

- 써트코리아 (http://www.certkorea.co.kr )

+ Recent posts