A. 인증서 신청은
Netscape Object Signing 인증서를 신청
또는
Microsoft Authenticode로 받은 인증서를 Netscape로 변환하여 사용
(일반적으로 사용가능한 Microsoft Authenticode 를 받는 편이 유리)
B. pvkimprt 를 통해 받은 spc , pvk 파일을 레지스트리로 import 시킨다.
pvkimprt 다운로드 : http://www.certkorea.co.kr/pds/pvkimprt.exe
> pvkimprt -import nine4u.spc nine4u.pvk
a. 비밀번호를 물어보는 창에서 개인키 비밀번호를 입력한다.
b. 다음
c. 인증서 종류 기준으로 인증서 저장소를 자동으로 선택 (default) 에 체크 -> 다음
d. 마침.
e. 이상으로 레지스트리에 인증서가 import 된다.
확인: IE(브라우저) 에서 도구>인터넷옵션>내용>인증서 에서 개인탭을 보시면 발급대상에 추가된 인증서 확인가능
C. 인증서에 이름 부여
a. IE 의 도구 > 인터넷 옵션 > 내용 > 인증서
b. 인증서 선택
c. 보기 > 자세히 > 속성편집
d. 이름입력 후 확인 (예) nine4uCodeSign
D. pvkimprt 를 통해 pfx 파일로 export 시킨다.
> pvkimprt -pfx nine4u.spc nine4u.pvk
a. 비밀번호를 물어보는 창에서 개인키 비밀번호를 입력한다.
b. 다음
c. 예, 개인키를 내보냅니다. (default) 에 체크 -> 다음
d. 가능하면 인증 경로에 있는 인증서 모두 포함 (체크)
그외 체크 모두 없애고 다음
e. 암호 , 암호확인 입력 후 다음
f. 파일이름은 저장할 pfx 파일 이름을 입력합니다. (예: nine4u.pfx) 다음.
g. 마침.
(참고) http://www.certkorea.co.kr/doc.asp?g_dev_conv
((( 코드사인 시작~~ )))
-------
다음은 윈도우 플랫폼에서 Firefox 플러그인 코드사인 방법입니다.
1. Mozilla FTP 사이트에서 최신의 Network Security Services (NSS) 패키지를 다운 받습니다. :
ftp://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/
윈도우 사용자는 NSS_3_9_RTM/WINNT5.0_OPT.OBJ/ 에서 nss-3.9.zip 을 받습니다.
2. 원하시는 곳에 압축을 풉니다. 예) C:\Apps\nss-3.9\
3. Mozilla FTP 사이트에서 최신의 Netscape Portable Runtime 을 다운 받습니다.
http://ftp.mozilla.org/pub/mozilla.org/nspr/releases/
윈도우 사용자는 v4.6/WINNT5.0_OPT.OBJ/ 에서 nspr-4.6.zip 을 받습니다.
4. 압축을 풉니다. 예) C:\Apps\nspr-4.6\
5. NSS 의 bin , lib, nspr 의 lib 를 시스템 path 에 추가합니다.
제어판 > 시스템 속성 > 고급 > 환경변수 > 시스템변수 에 추가하거나,
또는 실행시 마다 설정 하실 수 있습니다.
윈도우의 경우 몇몇 파일들 (예로, certutil.exe) 은 \widnows\system32\ 에 이미 포함되어 있으니,
새로 추가된 파일들이 실행되도록 하기 위해 추가될 경로는 기존의 path 앞에 위치 시킵니다.
설정 예)
C:\> set PATH=C:\Apps\nss-3.9\bin\;C:\Apps\nss-3.9\lib\;C:\Apps\nspr-4.6\lib\;%PATH%
6. NSS 툴 문서 함 읽어 보시고~ (패스 )
7. 인증서 DB 초기화
인증서 DB 파일을 위치시킬 폴더를 결정합니다. 다음 명령으로 DB 파일을 생성합니다. ( -d 옵션뒤에 . (마침표) 있음)
Code:
C:\Projects\CodeSigning\> certutil -N -d .
=> 현재디렉토리에 인증서 DB 파일을 새로 생성 한다.
다음 내용과 같이 NSS Certificate database 의 password 를 물어 봅니다.
(중요) 절대 잊어 버리면 안됩니다.
뒤에도 비번이 나오는데 NSS 인증서 DB 비번과 , 인증서의 개인키 비번은 별개 입니다. 혼동주의!
Code:
C:\Projects\CodeSigning\> certutil -N -d .
Enter a password which will be used to encrypt your keys.
The password should be at least 8 characters long,
and should contain at least one non-alphabetic character.
Enter new password:
Re-enter password:
이후 dir 해보시면
cert8.db , key3.db , secmod.db 파일 3개가 생성되어 있음을 확인 할 수 있습니다.
8. 위에서 준비한 pfx 파일을 NSS cert DB 에 import 시킵니다.
Code:
C:\Projects\CodeSigning> pk12util -i "nine4uCodeSign" -d .
Enter Password or Pin for "NSS Certificate DB": <- 7번 단계에서 입력한 비밀번호
Enter password for PKCS12 file: <- 인증서 개인키 비밀번호
pk12util: PKCS12 IMPORT SUCCESSFUL
; nine4uCodeSign 은 위의 C 단계에서 지정한 인증서 이름입니다.
; 다음 명령으로 인증서가 추가된 것을 확인 하실 수 있습니다.
C:\Projects\CodeSigning> certutil -L -d .
nine4uCodeSign u,u,u
Thawte Code Signing CA - Thawte Consulting cc c,,c
9. 싸인을 위한 XPI 파일을 준비 합니다.
새로운 폴더를 하나 생성하고 XPI 파일을 생성된 폴더에 카피 후 경로를 포함하여 압축을 풉니다.
XPI 파일은 삭제하고 NSS DB 폴더로 돌아갑니다.
(주의) xpi zip 파일내의 파일 순서를 지켜줘야 합니다.
첫번째 파일은 META-INF/zigbert.rsa 파일이 되어야 합니다.
순서정렬이 가능한 zip 유틸을 사용하셔야 합니다.
Code:
C:\Projects\CodeSigning\> md signed
C:\Projects\CodeSigning\> copy C:\Projects\fsb\fsb.xpi signed
1 file(s) copied.
C:\Projects\CodeSigning\> cd signed
C:\Projects\CodeSigning\signed> unzip fsb.xpi
Archive: fsb.xpi
creating: chrome/
inflating: chrome.manifest
inflating: chrome/fsb.jar
inflating: install.rdf
C:\Projects\CodeSigning\signed> del fsb.xpi
C:\Projects\CodeSigning\signed> cd ..
10. 싸인 합니다.
Code:
C:\Projects\CodeSigning\> signtool -d . -k nine4uCodeSign -p "NSS패스워드" signed/
using certificate directory: .
Generating signed//META-INF/manifest.mf file..
--> chrome/fsb.jar
--> chrome.manifest
--> install.rdf
Generating zigbert.sf file..
tree "signed/" signed successfully
11. XPI 로 다시 패키징 합니다.
signed 폴더로 가서 META-INF/zigbert.rsa 파일을 처음에 오도록 zip 합니다.
Code:
C:\Projects\Certs\> cd signed
C:\Projects\CodeSigning\signed\> zip fsb.xpi META-INF/zigbert.rsa
adding: META-INF/zigbert.rsa (deflated 35%)
C:\Projects\CodeSigning\signed> zip -r -D fsb.xpi * -x META-INF/zigbert.rsa
adding: META-INF/manifest.mf (deflated 37%)
adding: META-INF/zigbert.sf (deflated 40%)
adding: chrome/fsb.jar (deflated 74%)
adding: chrome.manifest (deflated 69%)
adding: install.rdf (deflated 62%)
12. 완료.
인증서 신청 : THAWTE : www.certkorea.co.kr, VERISIGN : www.ssl.co.kr