서명필의 . cab 파일을 재패키지 하면(자), 애플릿의 서명이 없어진다... - xrath.com 에서 번역됨

> ## 서명필의 `. cab` 파일을 `. jar` 파일로서 재패키지 하면(자), 애플릿의 서명이 없어진다

> ###
> 증상

> > 서명필의 `. cab` 파일을 `. jar` 파일로서 재패키지 하면(자), Sun JRE 로 실행중의 애플릿이 미서명으로서 다루어집니다. `. cab` 파일로서 패키지 된 같은 애플릿은, Microsoft VM 에서는 서명필로서 실행됩니다.

> ### 원인

> > Microsoft 에서는, 독자적인 Authenticode 및 `. cab` 파일 테크놀러지에 의해 애플릿의 서명을 지원하고 있습니다. 서명 정보는 재패키지의 처리중에 없어집니다. 그 결과, Sun JVM 에서는 `. jar` 파일을 미서명으로서 취급합니다.

> ### 해결 방법

> > JDK 의 jarsigner 툴을 사용해 `. jar` 파일에 서명합니다.

> > 1. VeriSign 로부터 Sun Java Signing 증명서를 취득하는지, Thawte 로부터 Java Code Signing 증명서를 가져옵니다. 또, 다른 인증국 (CA)으로부터 유사한 증명서를 취득할 수도 있습니다.
> > 2. keytool 와 별명을 사용해, 증명서를 키스토어에 임포트 합니다. 예를 나타냅니다.

> > >     C:\>C:\j2sdk1. 5\bin\keytool -import -alias MyCert -file VSSStanleyNew.cer

> > 3. `jarsigner` 를 사용해,`. jar` 파일에 서명합니다. 그 때, 전의 순서로 생성된 키스토어의 RSA 증명서를 사용합니다. 지정된 별명이 같은 것을 확인해 주세요. 다음에 예를 나타냅니다.

> > >     C:\>C:\j2sdk1. 5\bin\jarsigner C:\TestApplet.jar MyCert
> > >     Enter Passphrase for keystore: ********

> > 4. "`jarsigner -verify -verbose -certs`" 를 사용해,`. jar` 파일의 검증을 실시합니다.

> >    >     C:>C:\jdk1. 4.2\bin\jarsigner -verify -verbose
> >    >                     -certs d:\TestApplet.jar

> >    >              245 Wed Mar 10 11:48:52 PST 2000 META-INF/manifest.mf
> >    >              187 Wed Mar 10 11:48:52 PST 2000 META-INF/MYCERT.SF
> >    >              968 Wed Mar 10 11:48:52 PST 2000 META-INF/MYCERT.RSA
> >    >     smk      943 Wed Mar 10 11:48:52 PST 2000 TestApplet.class
> >    >     smk      163 Wed Mar 10 11:48:52 PST 2000 TestHelper.class

> >    >           X. 509, CN=XXXXXXX YYY, OU=Java Software,
> >    >                     O=Sun Microsystems, L=Cupertino,
> >    >                     ST=CA, C=US (mycert)
> >    >           X. 509, CN=Sun Microsystems, OU=Java Plug-in QA,
> >    >                     O=Sun Microsystems, L=Cupertino, ST=CA, C=US
> >    >           X. 509, EmailAddress=server-certs@thawte.com ,
> >    >                     CN=Thawte Server CA, OU=Certification
> >    >                     Services Division, O=Thawte Consulting cc,
> >    >                     L=Cape Town, ST=Western Cape, C=ZA

> >    >       s = signature was verified
> >    >       m = entry is listed in manifest
> >    >       k = at least one certificate was found in keystore
> >    >       i = at least one certificate was found in identity scope

> >    >     jar verified.

> ### 상세 정보

> VerSign 에 의한「Code Signing」, 또는 Thawte 에 의한「code-signing certificate support」를 참조해 주세요.