• 締切済み

署名付アプレットの開発方法

いつもお世話になっております。 署名付アプレットの開発を行った方にお聞きしたいのですが、開発用の証明書はどこから入手しているのでしょうか? 環境:JRE1.3+Swing 機能:クライアントのファイルを操作したい Sunのページ http://java.sun.com/products/plugin/1.3/docs/ja/rsa_signing.html を読みながら試そうとしたのですが、証明書が無いので 結局は試せなかったのです。 PS SSL用の証明書と署名付アプレットで試用する証明書は違うものなのでしょうか???

  • ZIGEN
  • お礼率86% (13/15)
  • Java
  • 回答数2
  • ありがとう数4

みんなの回答

  • ct27
  • ベストアンサー率62% (48/77)
回答No.2

>Policyファイルを自分で編集しないで、できないかと >考えています。(各ユーザにファイルを編集させたくない)  ユーザに編集させるのではなく自分で編集したjava.policyを配布すると  いう方法はとれないのでしょうか?(その方が一般的のような気が)  また参考URLにあるのですが  ---  インストールした SDK のポリシー構成ファイルでは、指定されたコードソース  からのコードに対し、どのようなアクセス権 (システムリソースへのアクセスの  種類) を与えるかを指定します。  ---  と記述されているため、アクセス権を与えるためにはやはりjava.policyの  編集は不可欠だと思います。  署名付きアプレットは  http://www.hata.cc/docs/SignedObj/index.html  で語られているようにsandbox内で動作するように制限されているため  その制限を解除するのに署名を付加するわけです。

参考URL:
http://java.sun.com/j2se/1.3/ja/docs/ja/guide/security/PolicyFiles.html
ZIGEN
質問者

お礼

ct27様 色々とありがとうございます。 うまく行きました!!! VeriSignでテストできる証明書は、SSL用だと思っていたの ですが使えました。 テスト用の証明書なので、CA証明書を仮にクライアントに インストールする必要がありますが、 ちゃんとセキュリティダイアログが表示されました。 #ダイアログで選択するだけで、ローカルファイルが読めました。

  • ct27
  • ベストアンサー率62% (48/77)
回答No.1

証明書は入手するものではなく自分で作成します。 JDKのkeytoolを使用して作成することができます。 またjarsignerを使用して作成した証明書のインストールを行います。 詳細はURLを参照して下さい。

参考URL:
http://java.sun.com/j2se/1.3/ja/docs/ja/guide/security/SecurityToolsSummary.html
ZIGEN
質問者

補足

ct27様、ご回答ありがとうございます。 しかし、自分で作成した証明書を使って Policyファイルを書き換えたら、アプレットから ローカル資源を使用することができたのですが、 Policyファイルを自分で編集しないで、できないかと 考えています。(各ユーザにファイルを編集させたくない) そのためには、どうすればよいのでしょうか??? つまり、「セキュリティダイアログを表示せたい」のです。 また、ポリシーファイルを書き換えるのであれば、 わざわざ署名付アプレットにする必要も無いと思います。 --- Java Plug-in のユーザが RSA 署名付きアプレットに遭遇すると、Plug-in はアプレットの署名が適正であること、および RSA 証明書連鎖とルート CA が有効であることを確認します。これらすべてが有効な場合、Plug-in によりセキュリティダイアログが開かれ、アプレットに署名したユーザ、および次の 4 つのオプションを示します。 常に許可する: このオプションを選択すると、アプレットには、"AllPermission" が付与されます。同じ証明書を使って署名された署名付きアプレットはすべて、以後自動的に信頼されるため、この証明書への遭遇時にセキュリティダイアログはポップアップしません。この設定は、Java Plug-in コントロールパネルから変更できます。 このセッションで許可する: このオプションを選択すると、アプレットには "AllPermission" が付与されます。同じ証明書を使って署名された署名付きアプレットはすべて、同じブラウザセッション内で自動的に信頼されます。 許可しない: このオプションを選択すると、アプレットには Java Runtime のセキュリティポリシーから適用可能なアクセス権が付与されます。デフォルトでは、信頼されないアプレット用のアクセス権が付与されます。 詳細情報: このオプションを選択すると、JAR ファイルの証明書連鎖内の各証明書の属性を確認できます。 セキュリティダイアログでオプションを選択すると、対応するセキュリティコンテキストでアプレットが実行されます。これらの設定はただちに反映され、事前の構成は必要ありません。 一般的な問題 JAR ファイルの署名が適切に行われていない、RSA 証明書が期限切れになった、または RSA 証明書が自己生成型かつ自己署名型の証明書である場合、Java Plug-in は何も行わずに失敗し、セキュリティダイアログをポップアップ表示しないことがあります。アプレットは、署名がないものとして扱われます。 ---

関連するQ&A

  • SWINGでアプレット使えますか?

    GUIの作成において、SWINGはAWTよりも「OSに依存しない」「動作が軽い」など多くのメリットがあることを知り、SWINGにとても興味があります。 そこで質問ですが、アプレットの作成において、私が読んだ解説サイトの全てが「java.awt.*」をインポートしていました。 もしかして、SWINGではアプレット開発ってできないのでしょうか? 最近JAVAをはじめたので、質問に少々おかしな点があるかもしれませんが、どうか目にみてやって下さいm(_ _)m

  • アプレットでのLookAndFeel変更について

    お世話になります。 現在、JRE1.3.1の環境でアプレット(Swing)の開発をしております。 LookAndFeelを変更するために、 アプレットのクラスに static { try { UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); } catch(Exception e) { } } を書いているのですが、最初の起動時のみWindows調になります。 ブラウザを消さないで(VMが残ったまま)アプレットを再表示しようとすると、メタル調に戻ってしまうのですが、 なんとかする方法は無いのでしょうか??

    • ベストアンサー
    • Java
  • アプレットをhtmlに乗せると動かなくなります…

    こんにちは。わざわざ見て下さっている方ありがとうございます! 作ったアプレットがアプレットビューアの上でなら動くのに、htmlに乗せると「読み込みに失敗しました」になってしまいます。 私は本当に初心者でして、何をお伝えすればいいのか分からないのですが、htmlのアプレットを右クリックした時に出てくる[Javaコンソール]というものが限りなく怪しいかなと思いましたので、下にペーストしておきました。関係なかったらすみません。 Class: class ThreeDMaze ClassLoader: sun.plugin.security.PluginClassLoader@10dd1f7 java.security.AccessControlException: access denied (java.io.FilePermission .\mapFile read) at java.security.AccessControlContext.checkPermission(Unknown Source) at java.security.AccessController.checkPermission(Unknown Source) at java.lang.SecurityManager.checkPermission(Unknown Source) at java.lang.SecurityManager.checkRead(Unknown Source) at java.io.File.list(Unknown Source) at ThreeDMaze.init(ThreeDMaze.java:70) at sun.applet.AppletPanel.run(Unknown Source) at java.lang.Thread.run(Unknown Source) どうか宜しくお願いします!

    • ベストアンサー
    • Java
  • java-prugin1.3、Netscape communicatorでアプレットが呼び出せない。

    私は現在JAVAアプレットを作成しそのクラスファイルをjarにして そのjarファイルの中からクラスファイルをロードするhtmlを書きたいので、 アプレットを貼り付ける個所に以下のようにタグを書いたのですがJAVAコンソール上でクラスが見つかりません。といわれて失敗してしまいます。 (netscapeのみ失敗します。IEは成功してアプレットを実行できます。) 何か他に必ず指定しなければいけない属性があるのでしょうか? javadocも見て確認したのですが。。。 どなたか教えていただけないでしょうか? ちなみにjarファイルもhtmlファイルも全て同階層のディレクトリにおいてあります。 ----------ソースここから-------------- <OBJECT classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" width="200" height="200" codebase="http://java.sun.com/products/plugin/1.3/jinstall-13-win32.cab#Version=1,3,1,3"> <PARAM NAME="code" VALUE="ReportSample.class"> <PARAM NAME="archive" VALUE="Sample.jar"> <PARAM NAME="codebase" VALUE="."> <PARAM NAME="type" VALUE="application/x-java-applet;version=1.3"> <PARAM NAME="mylabel" VALUE="MyLabel"> <COMMENT> <EMBED type="application/x-java-applet;version=1.3" width="200" height="200" align="baseline" java_archive="Sample.jar" java_codeBase="./" java_code="ReportSample.class"  pluginspage="http://java.sun.com/products/plugin/1.3/plugin-install.html"> <NOEMBED> </COMMENT> Java Plug-inの実行に失敗しました </NOEMBED> </EMBED> </OBJECT> --------------------------------------

    • ベストアンサー
    • HTML
  • Eclipse以外でアプレットが実行出来無い

    おはよう御座います、非常に初歩的な内容だと思うのですが、アプレットについて質問させて頂きます。 現在、Eclipseで作成したアプレットを、ブラウザ上で実行しようとしています。 ですが、Eclipseでアプレットを起動中に自動生成されるhtmlファイルをコピーしたhtmlファイルでも、アプレットを起動することが出来ないのです。 htmlファイルとclassファイルの内容さえ同じであれば、起動出来るのではと思っていたのですが・・・、何処がEclipseとChromeで違い、どう直せば良いのか解らず、質問させて頂きました。 HTMLファイルの内容は <html> <body> <applet code=Practice_1/HelloWorld.class width="200" height="200" > </applet> </body> </html> エラーの内容は以下の通りです。 Java Plug-in 1.6.0_31 使用中の JRE のバージョン 1.6.0_31-b05 Java HotSpot(TM) Client VM ユーザのホームディレクトリ = C:\Users\名前 java.lang.RuntimeException: java.lang.NoClassDefFoundError: org/jbox2d/callbacks/ContactListener at sun.plugin2.applet.Plugin2Manager.createApplet(Unknown Source) at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source) at java.lang.Thread.run(Unknown Source) Caused by: java.lang.NoClassDefFoundError: org/jbox2d/callbacks/ContactListener at java.lang.Class.getDeclaredConstructors0(Native Method) at java.lang.Class.privateGetDeclaredConstructors(Unknown Source) at java.lang.Class.getConstructor0(Unknown Source) at java.lang.Class.newInstance0(Unknown Source) at java.lang.Class.newInstance(Unknown Source) at sun.plugin2.applet.Plugin2Manager$12.run(Unknown Source) at java.awt.event.InvocationEvent.dispatch(Unknown Source) at java.awt.EventQueue.dispatchEventImpl(Unknown Source) at java.awt.EventQueue.access$000(Unknown Source) at java.awt.EventQueue$1.run(Unknown Source) at java.awt.EventQueue$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source) Caused by: java.lang.ClassNotFoundException: org.jbox2d.callbacks.ContactListener at sun.plugin2.applet.Applet2ClassLoader.findClass(Unknown Source) at sun.plugin2.applet.Plugin2ClassLoader.loadClass0(Unknown Source) at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source) at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) ... 20 more 例外: java.lang.RuntimeException: java.lang.NoClassDefFoundError: org/jbox2d/callbacks/ContactListener 実行しようとしているプログラムでは、Eclipseで言う所のプロジェクト内に、ImageとPractice_1というパッケージがあり、動作させたいクラスはPractice_1内に入っています、Eclipseでは当然何のエラーも無く実行出来ます。 見た限り、ContactListenerクラスが見つからない、というエラーのようなのですが、それ以外の後から入れたライブラリのクラスに関してはエラーが表示されていないので困惑しています。 Eclipseで自動生成された内容から一切変えていないので、htmlファイルが間違っているわけでは無いと思っていたのですが、ブラウザ上で起動する場合は何か付け加える物があるのでしょうか・・・、どなたか解る方が居ましたら、解答頂けると助かります。

    • ベストアンサー
    • Java
  • 署名と検証

    http://java.sun.com/j2se/1.4/ja/docs/ja/guide/security/CryptoSpec.html を読んで、ある文章への署名の方法はわかりました。 だた、検証の方法がわからないんです。 例えば、あるプログラムで署名されたファイルを 違うプログラムで検証するにはどうしたらいいのでしょうか? 秘密鍵の生成などはわかったのですが、 どのようにして、署名をした人でない人が 公開鍵を受け取って検証するのでしょうか? この公開鍵の受け取り方がわかりません。 どうかよろしくお願いします。

    • ベストアンサー
    • Java
  • サンドボックス アプレットとデフォルトの Policyの設定

     SUN製Javaデフォルトの Policyの設定だとアプレットでのアクセス権はどうなりますか?  デフォルトの各アプレットのサンドボックスのPC(WindowsXP Linux)上のパスを教えてください。  ローカルファイルへのそれは禁止としてはダウンロード元とは異なるIPにへのアクセスついて特に知りたいです。  jarアプレットやclassアプレットファイルのダウンロード元とは違うIPへアクセスできないのか  それともjarアプレットやclassアプレットをAPPLETタグなどで読み込むhtmファイルのダウンロード元とは異なるIPへのアクセスができないのか (もちろん日本ベリサインなどの証明書があればユーザに許可を求めることができることは存じ上げております。) http://java.sun.com/j2se/1.5.0/ja/docs/ja/guide/security/PolicyFiles.html ↑ここに載せた解説ではよく分かりません。 ポリシーを変更するための (たとえば一例として「同一Javaアプレットのサンドボックス内以外のmyローカルPCへのアクセスは禁止するがダウンロード元以外のIPのPC内の同一Javaアプレットのサンドボックスへのアクセスは証明書がなくても信頼済みとする」のような) もっと分かりやすく日本語で解説しているWebサイトってございませんでしょうか? アプレットでP2Pのようなことがしたいのです。

    • ベストアンサー
    • Java
  • JAVAアプレットのホームページへの挿入がうまくいかなくて困っています

    JAVAアプレットのホームページへの挿入がうまくいかなくて困っています。 原因が分かる方いたら教えてください。 ECLIPSEで作成した.classファイルをホームページビルダーのJAVAappletの挿入という機能を使って挿入しようとしました。 ホームページビルダーの素材集にあるJAVAアプレットはうまく表示できたのですが、 「エラー。クリックした詳細を確認してください」というメッセージが出ます。 クリックして出るエラーは次の通り。 ↓ Java Plug-in 1.6.0_17 使用中の JRE のバージョン 1.6.0_17-b04 Java HotSpot(TM) Client VM ユーザのホームディレクトリ = C:\Users\solitaire ---------------------------------------------------- c: コンソールウィンドウをクリア f: ファイナライズキューのオブジェクトをファイナライズ g: ガベージコレクト h: このヘルプメッセージを表示 l: クラスローダリストをダンプ m: メモリ使用率を表示 o: トリガログ q: コンソールを非表示 r: ポリシー設定を再ロード s: システムプロパティと配備プロパティをダンプ t: スレッドリストをダンプ v: スレッドスタックをダンプ x: クラスローダキャッシュをクリア 0-5: トレースレベルを <n> に設定 ---------------------------------------------------- java.lang.NoClassDefFoundError: sampleapplet (wrong name: sampleapplet/sampleapplet) at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(Unknown Source) at java.security.SecureClassLoader.defineClass(Unknown Source) at sun.plugin2.applet.Applet2ClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.plugin2.applet.Plugin2ClassLoader.loadCode(Unknown Source) at sun.plugin2.applet.Plugin2Manager.createApplet(Unknown Source) at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source) at java.lang.Thread.run(Unknown Source) 例外: java.lang.NoClassDefFoundError: sampleapplet (wrong name: sampleapplet/sampleapplet) /////////////////////////////////////// ↓HTMLコードの一部 <p>アプレットを挿入してみたのだけれど</p> <p><applet code="sampleapplet.class" width="300" height="300"></applet></p> //////////////////////////////////////////// ↓ビルド前のJAVAコードの一部 package sampleapplet; import java.applet.Applet; import java.awt.Graphics; public class sampleapplet extends Applet{ public void paint(Graphics g){ g.drawLine(10, 10, 180, 110); } }

    • ベストアンサー
    • Java
  • Java開発でJRE1.4を考慮すべき理由

     書籍などを見ていると、Javaでスタンドアロンアプリケーションやアプレットを開発して配布する際、JRE1.4がインストールされている環境のことも考慮すべきである、と書かれていることが多いのですが、1.4の環境を考慮すべき理由とは何なのでしょうか? Readmeやアプレットの側などに、JRE最新版のダウンロードを促す表記をするだけでいいような気がするのですが、それだけでは問題があるのですよね・・・? どういった問題が発生するのか、ご存知の方、教えていただければ幸いです。

    • ベストアンサー
    • Java
  • アプレットが起動できなくなりました。。

    今までは、アプレットが起動できていたのですが、 突然、エラーが出るようになりました。 エラー後、ダウンロードを求めるダイアログが出るので、 SunからJava_plugin 1.3.1_01 ?? をダウンロード したのですが、ダウンロード後も、エラーが出てアプレット が起動できません。 アドバイスよろしくお願い致します。 OS:Windows2000 エラー内容---------------------------------- Java Plug-in 1.3.1_01 cannot be located because values in the registry key HKEY_LOCAL_MACHIN¥SOFTWARE\JavaSoft\Java Plug-in\1.3.1_01 is not found or is no longer valid. ここまで------------------------------------