アプレットに署名をつける方法

●配布者側の作業
 署名のない「信頼されないアプレット」は、 クライアントPCのファイルを読み書きしたり、 JDBCを使ってデータベースに接続したりすることができません。 そこで、アプレットに署名をつける必要があります。

  1. Javaアプレットを書き、コンパイルします。
    % javac DataStoreTester.java
    
  2. そのファイルをjarでアーカイブにします。
    % jar cvf sapplets.jar DataStoreTester.class
    
    元になったクラスファイルはどこかにしまっておきます。
    % mkdir tmptmp
    % mv *.class tmptmp
    
  3. JDK付属のkeytoolを使い、 自分がアプレットを配布する際の暗号鍵と証明書を含むkeystoreファイルを作ります。
    % keytool -genkey -keystore sappkey
    Enter keystore password: 適当に(password)
    What is your first and last name? : Kouken Heijima
    What is the name of your organizational unit? : Tech
    What is the name of your organization? : Nishinihon Kumomakka Systems
    What is the name of your City or Locality?
      [Unknown]:  Yokohama-Tsunashima
    What is the name of your State or Province?
      [Unknown]:  Kanagawa
    What is the two-letter country code for this unit?
      [Unknown]:  JP
    
    途中2度パスワードを聞かれますが、同じでも違うのでもOKです。 これで、sappkeyというバイナリファイルが作られます。
  4. 格納されたことを確認
    % keytool -list -v -keystore sappkey
    
  5. jarsignerを使って、アプレット(のJARファイル)に署名します。
    % jarsigner -keystore ./sappkey sapplets.jar mykey
    
    mykeyというのはkeystoreファイルのデフォルトのエイリアス名です。 これを変えたい場合はkeytoolのコマンドラインで-aliasオプションを使います。
  6. sappkeyの内容をテキストファイルにエクスポートします。
    % keytool -export -keystore sappkey -rfc -file tmptmp.txt
    
    エクスポートするファイル名は自由です。
  7. エクスポートしたファイルを、各クライアントPCが入手できるように配布します。

●クライアントPC側の作業

  1. エクスポートされたファイルをクライアントPCで入手して、 各PC上でインポートします。
    % keytool -import -keystore sappkeyc -file tmptmp.txt
    
  2. この sappkeyc をどこかに置きます。分かりやすいところとして $JRE_HOME/lib/security に置きます。
  3. $JRE_HOME/lib/security/java.policy ファイルを編集して、 次の行を追加します。
    keystore "/usr/local/jdk1.3/jre/lib/security/sappkeyc";
    
    grant codeBase "http://intra.nsnhnkmmkk.co.jp:8080/applet/*" {
            // permission java.security.AllPermission;
            // permission java.io.FilePermission "*", "read,write";
            permission java.net.SocketPermission "*", "connect,resolve";
    };
    
  4. Webブラウザでアプレットのページにアクセスして、動作を確認します。

Misc Topics Top

(first uploaded 2001/10/17 last updated 2002/01/06, HEIJIMA Kouken - ESHI Kazuhisa)

yVoC[UNLIMIT1~] ECir|C Yahoo yV LINEf[^[z500~`I


z[y[W NWbgJ[h COiq O~yz COsI COze