IT_Programming/Java

signed applet 만들기

JJun ™ 2007. 11. 22. 02:01
LONG
 

* 좀 더 자세한 사항은 아래 링크 참조



 
ARTICLE Java applet에서 파일 접근 혹은  DB접근을 할려면 signed applet을 사용해야한다.

[과정]

1. jar 파일만들기
jar cvf Applet.jar Applet.class


2. html만들기
<Applet code="Applet.class" archive="Applet.jar" width=800 height=600></Applet>


3. Generating Your Key Pair
  우선 애플릿에 사인을 하기 위해서는 사인할 때 사용할 키가 필요하다. 그래서 먼저 키를 만들어 보자.

  키를 만들기 위해서는 keytool이라는 유틸리티를 사용할 수 있다. 이 유틸리티는 Java 2 SDK에 포함되어 있다. 이 유틸리티에 대한 자세한 사항은 이 문서의 마지막에 나오는 REFERENCES 3을 참고하기 바란다.

  이제 keytool 유틸리티를 가지고 그림 4. keytool 유틸리티를 이용하여 키 생성과 같이 실행해 보자. 다음과 같은 keytool 명령어를 사용할 수 있다.

keytool -genkey -dname "cn=necoyam, c=KR" -alias Applet -keypass 12345678 -storepass 12345678


4. JAR Signing
  이제 jar 파일에 사인을 하여 사인드 애플릿을 만들어 보자.
  Jar 파일에 사인을 하기 위해서는 jarsigner라는 유틸리티가 필요하다. 이 유틸리티 또한 Java 2 SDK 에 포함되어 있다. Jarsigner 유틸리티를 이용하여 이미 만들어져 있는 jar 파일을 signed jar 파일로 바꾸어 보자. Jarsigner 유틸리티에 대한 자세한 사항은 이 문서의 마지막에 나오는 REFERENCES 1을 참고하기 바란다.

  이제 jarsigner유틸리티를 가지고 그림 5. jarsigner 유틸리티를 이용하여 사인드 jar 파일 만들기와 같이 실행해 보자. 다음과 같은 jarsigner 명령어를 사용할 수 있다.

jarsigner -storepass 12345678 -keypass 12345678 Applet.jar Applet


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


(1) 인증 키 생성

keytool -genkey -alias 키이름 -keystore 키저장경로\키파일이름 -keypass 패스워드 -storepass 패스워드  -dname "cn=이름옵션, o=회사옵션, st=도시옵션 c=KR"

  keystore를 처음 사용하는 경우라면 예제에서 keystore의 위치와 이름을 지정해 주지 않았으므로 사용자의 홈 디렉토리에 .keystore라는 파일이 만들어 진다. 이 파일은 key pair들을 저장하는 일종의 데이터베이스와 같은 역할을 한다. (C:Documents and Settings\[로긴내임] 디렉토리 아래에 .keystore라는 파일)

  똑같은 alias를 가진 key를 만들려고하면 에러가 나는데.. 비번이 기억나지 않으면 위의 파일을 지우면 된다.


(2) 파일에 서명

jarsigner -keystore 키저장경로\키파일이름 -keypass 패스워드  -storepass 패스워드 -signedjar 사인된 jar파일 저장경로\파일명 사인할 jar파일 저장경로\파일명 키이름

keytool  -genkey -alias totomaKeyStore -keystore c:\javasecurity\totomaKeyStore -keypass tini1004  -storepass tini1004  -dname "cn=이름, o=회사, st=seoul c=KR"

jarsigner -keystore c:\javasecurity\totomaKeyStore -keypass tini1004  -storepass tini1004 -signedjar c:\javasecurity\SignerHelloWorld.jar c:\javasecurity\HelloWorld.jar  testKeyStore