|
アプレットに署名をつける方法
●配布者側の作業
署名のない「信頼されないアプレット」は、
クライアントPCのファイルを読み書きしたり、
JDBCを使ってデータベースに接続したりすることができません。
そこで、アプレットに署名をつける必要があります。
- Javaアプレットを書き、コンパイルします。
% javac DataStoreTester.java
- そのファイルをjarでアーカイブにします。
% jar cvf sapplets.jar DataStoreTester.class
元になったクラスファイルはどこかにしまっておきます。
% mkdir tmptmp
% mv *.class tmptmp
- 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というバイナリファイルが作られます。
- 格納されたことを確認
% keytool -list -v -keystore sappkey
- jarsignerを使って、アプレット(のJARファイル)に署名します。
% jarsigner -keystore ./sappkey sapplets.jar mykey
mykeyというのはkeystoreファイルのデフォルトのエイリアス名です。
これを変えたい場合はkeytoolのコマンドラインで-aliasオプションを使います。
- sappkeyの内容をテキストファイルにエクスポートします。
% keytool -export -keystore sappkey -rfc -file tmptmp.txt
エクスポートするファイル名は自由です。
- エクスポートしたファイルを、各クライアントPCが入手できるように配布します。
●クライアントPC側の作業
- エクスポートされたファイルをクライアントPCで入手して、
各PC上でインポートします。
% keytool -import -keystore sappkeyc -file tmptmp.txt
- この sappkeyc をどこかに置きます。分かりやすいところとして
$JRE_HOME/lib/security に置きます。
- $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";
};
- Webブラウザでアプレットのページにアクセスして、動作を確認します。
(first uploaded 2001/10/17 last updated 2002/01/06,
HEIJIMA Kouken - ESHI Kazuhisa)
|