- PR -

java web startのにおけるJNLP.APIの利用方法

投稿者投稿内容
ぶん
会議室デビュー日: 2002/04/04
投稿数: 15
投稿日時: 2002-07-17 19:06
長らくペンディング状態でした。

>そうなると後は、署名に使った証明書が、テストに利用するクライアントマシンに正しく
>インストールできているかどうかが疑われます。
>署名作業をしたマシンから証明書をエクスポートして、目的のマシンにインポートしたと
>きの手順と結果を、再度確認して下さい。
>
そもそもJava Web Startでダウンロードしてきたアプリケーションを使用する場合に
そのクライアントマシンへ証明書をインポートする必要が有るのでしょうか??

もう一度、原点に返って知りたいことを以下に述べますと、
Java Web Startにてアプリケーションを開発し、そのアプリケーションはクライアント
資源へフルアクセスしたい。そうした場合の構築方法が、知りたい。

java web start の  .jnlpファイルへ以下を記述
<security>
<all-permissions/>
</security>

サーバーへ配置する jarファイルは、どのような処置が必要なのでしょうか?
現状は、keytoolsにてテスト署名書を作成し、jarsignerにてjarファイルへその署名を
付与していますが、JWSのサイトへアクセスして実行しようとすると
「システムへの無制限のアクセスを要求する、署名されていないアプリケーションです」
なるエラーが発生して該当JARファイルのダウンロードに失敗しています。

そもそもkeytools及びjarsignerを使用してのテスト署名で問題ないのでしょうか?
また、その場合の手順は、以下だけです。
1.keytool -genkey -keystore myKeystore -alias myself
2.jarsigner -keystore myKeystore sample.jar myself
3.サーバーのディレクトリへ「sample.jar」をコピー
何か足りないですか?
証明書のインポートやエクスポートなどの手順が必要なのでしょうか?

以上、どうにも不明なところです。
Paul
ベテラン
会議室デビュー日: 2002/04/30
投稿数: 75
お住まい・勤務地: 東京
投稿日時: 2002-07-17 22:22
アプレットの署名のことを思い起こしてください。

> 現状は、keytoolsにてテスト署名書を作成し、jarsignerにてjarファイルへその署名を
> 付与していますが、
テスト証明書の署名はあなた自身のはずです。あなたは世界的にオーソライズされた認証機関ですか?違いますね。
ですから、証明書を、作成したマシンからエクスポートして、実行する各マシンへインポートすることが必要なのです。テスト証明書は文字通りテスト専用です。

VerisignやThawte等の証明書なら問題ないはずです。

[ メッセージ編集済み 編集者: nakagome 編集日時 2002-07-17 22:32 ]
ぶん
会議室デビュー日: 2002/04/04
投稿数: 15
投稿日時: 2002-07-17 22:47
レス有難うございます。
この辺がまったく理解しておりません。

>証明書を、作成したマシンからエクスポートして、実行する各マシンへインポートすることが
>必要なのです。テスト証明書は文字通りテスト専用です。
>
とりあえずLAN環境での運用なのでテスト証明書を使用しています。
それと、「実行する各マシンへインポートする」とありますが、サーバー側での設定
だけで問題ありませんよね?
アプレットの場合だと、...jre\lib\security\java.security等へ設定するようですが..
もちろん署名ファイルをインポートしてキーストアを生成するなどの操作が必要なのでしょうが

署名ファイルのインポートを行って「keytool -import alias 名 -file 名めい」
java.securityへ
Keystore 名
grant signedBy "myself"{
permission java.security.AllPermission
}
などの設定を行ってもだめです。根本的に間違っていますか?
Paul
ベテラン
会議室デビュー日: 2002/04/30
投稿数: 75
お住まい・勤務地: 東京
投稿日時: 2002-07-18 11:45
> それと、「実行する各マシンへインポートする」とありますが、サーバー側での設定
> だけで問題ありませんよね?
問題ないはずです。

> 根本的に間違っていますか?
間違っていないように見えます。

なぜうまくいかないのかわかりません。
要求するJDKを変えてみたり、サーバー上で署名してみたりして、原因の切り分けをしてみてはいかがでしょうか?
_________________
Paul K.Nakagome
ぶん
会議室デビュー日: 2002/04/04
投稿数: 15
投稿日時: 2002-07-30 17:54

お久しぶりです。ぶんです。

いろいろ試行錯誤しましたが、なぜかResin単体ではうまく動作せずにあきらめました。
HTTPをApacheで処理するように変更して、無事動作しました。
環境も再構築してみたりと色々やってみましたが、Resin単体では動作が不安定でして
原因も良く判りません。

まとめ
JWSでのセキュリティをフルアクセスで運用する方法
1.keytool -gen ...でキーストアファイルを作成
2.keytool -selfcert ...でキーストアファイルから自己署名証明書を生成
3.jarsigner ...でJNLPに記述した全jarファイルへ署名
4.JNLPファイルへ以下の記述を追加
<security>
<all-permissions/>
</security>

以上でOKでした。
java.securityなどへの設定は、まったく不要だったわけです。

nakagomeさん色々有難うございました。m(_ _)m ほうとうに感謝です。

スキルアップ/キャリアアップ(JOB@IT)