본문 바로가기

카테고리 없음

Java WebStart How-To

Java WebStart를 이용하기 위한 설정 및 테스트

http://docs.oracle.com/javase/tutorial/deployment/webstart/deploying.html

http://docs.oracle.com/javase/8/docs/technotes/guides/jweb/security/signedJNLP.html

http://docs.oracle.com/javase/tutorial/deployment/jar/signing.html

https://netbeans.org/kb/73/java/javase-jws.html

http://www.java.com/ko/download/help/jcp_security.xml

http://www.java.com/ko/download/faq/exception_sitelist.xml


테스트 환경

 - JDK 1.7

 - NetBeans 8

 - Windows 7

 - Tomcat 7


설정순서

 - keytool 설정

 - NetBeans 프로젝트에서 WebStart 설정 및 키를 이용한 Signed JAR 생성 (*.JAR, *.JNLP, *.HTML 파일이 생성됨)

 - 위에서 생성된 파일을 웹사이트에 복사

 - Java 제어판에서 보안수준 설정 및 예외 사이트 목록 작성

 - 웹브라우저로 웹사이트의 HTML 파일에 접속



Java keytool.exe 를 이용하여 keystore와 key를 생성한다 (아래 참조)

Command Prompt 를 이용하여 JDK가 설치된 디렉토리로 이동하여 다음과 같이 명령한다

아직 키가 생성되지 않았다면 오류가 발생한다.


C:\Program Files\Java\jdk1.7.0_55\bin>keytool -list

keytool 오류: java.lang.Exception: 키 저장소 파일이 존재하지 않음: C:\Users\duniv6-000\.keystore



다음과 같은 명령으로 키를 생성하면 keystore 파일도 함께 생성된다

keystore 비밀번호와 key 비밀번호를 요구하므로 6자 이상으로 적절히 입력한다

아래에서 사용된 비밀번호와 -alias는 키에 대한 별칭이며 키를 이용해 Jar 파일에 전자서명을 할 때 사용된다


C:\Program Files\Java\jdk1.7.0_55\bin>keytool -genkey -alias WebStartPublisher

키 저장소 비밀번호 입력:

새 비밀번호 다시 입력:

이름과 성을 입력하십시오.

  [Unknown]:  WSTester

조직 단위 이름을 입력하십시오.

  [Unknown]:

조직 이름을 입력하십시오.

  [Unknown]:

구/군/시 이름을 입력하십시오?

  [Unknown]:

시/도 이름을 입력하십시오.

  [Unknown]:

이 조직의 두 자리 국가 코드를 입력하십시오.

  [Unknown]:

CN=WSTester, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown이(가) 맞습니까?

  [아니오]:  y


<WebStartPublisher>에 대한 키 비밀번호를 입력하십시오.

        (키 저장소 비밀번호와 동일한 경우 Enter 키를 누름):


C:\Program Files\Java\jdk1.7.0_55\bin>



키를 생성한 후에 다시 키를 확인하기 위해 다음과 같이 명령해본다


C:\Program Files\Java\jdk1.7.0_55\bin>keytool -list

키 저장소 비밀번호 입력:


키 저장소 유형: JKS

키 저장소 제공자: SUN


키 저장소에 1개의 항목이 포함되어 있습니다.


webstartpublisher, 2014. 6. 17, PrivateKeyEntry,

인증서 지문(SHA1): 02:B0:6F:72:EE:F0:16:F5:40:96:81:3A:CC:19:7C:B0:8C:1E:71:8F


C:\Program Files\Java\jdk1.7.0_55\bin>



키 삭제 명령에서는 키를 생성할 때 사용했던 별칭을 입력한다


C:\Program Files\Java\jdk1.7.0_55\bin>keytool -delete -alias webstartpublisher

키 저장소 비밀번호 입력:


C:\Program Files\Java\jdk1.7.0_55\bin>keytool -list

키 저장소 비밀번호 입력:


키 저장소 유형: JKS

키 저장소 제공자: SUN


키 저장소에 0개의 항목이 포함되어 있습니다.



C:\Program Files\Java\jdk1.7.0_55\bin>



다음과 같이 한꺼번에 모든 정보를 입력하고 키를 생성할 수 있다. 키의 비밀번호는 6자 이상으로 구성해야 한다


C:\Program Files\Java\jdk1.7.0_55\bin>keytool -genkey -alias webstartpublisher -dname "CN=WSTester" -storepass 00000 -keypass 00000

keytool 오류: java.lang.Exception: 키 비밀번호는 6자 이상이어야 합니다.


C:\Program Files\Java\jdk1.7.0_55\bin>keytool -genkey -alias webstartpublisher -dname "CN=WSTester" -storepass 000000 -keypass 000000


C:\Program Files\Java\jdk1.7.0_55\bin>



C:\Program Files\Java\jdk1.7.0_55\bin>keytool -list -storepass 000000



키 저장소 유형: JKS

키 저장소 제공자: SUN


키 저장소에 1개의 항목이 포함되어 있습니다.


webstartpublisher, 2014. 6. 17, PrivateKeyEntry,

인증서 지문(SHA1): 14:61:C1:6C:8C:D6:E5:17:D3:F8:DD:8C:6D:D5:55:DB:EC:92:27:1F


C:\Program Files\Java\jdk1.7.0_55\bin>



*.keystore 파일이 디폴트 폴더에 생성되는 것보다 지정된 폴더 안에 생성되도록 하면 keystore 파일의 위치를 찾지못해서 생기는 어려움을 피할 수 있다.

다음과 같이 keystore 파일이 생성될 위치와 파일명까지 지정할 수 있다


C:\Program Files\Java\jdk1.7.0_55\bin>keytool -keystore d:\test\my.keystore -genkey -alias WebStartPublisher -dname "CN=WSTester" -storepass 000000 -keypass 000000


C:\Program Files\Java\jdk1.7.0_55\bin>



특정 keystore 에 저장된 key를 확인하려면 명령에 keystore 파일의 경로를 입력해주면 된다


C:\Program Files\Java\jdk1.7.0_55\bin>keytool -list -storepass 000000 -keystore d:\test\my.keystore


키 저장소 유형: JKS

키 저장소 제공자: SUN


키 저장소에 1개의 항목이 포함되어 있습니다.


webstartpublisher, 2014. 6. 17, PrivateKeyEntry,

인증서 지문(SHA1): DB:88:24:85:F5:A6:0D:7D:56:C7:9C:A8:C7:42:AE:86:D2:BD:A1:EA


C:\Program Files\Java\jdk1.7.0_55\bin>