2

ローカル ファイル システム上の SQLite データベースに接続する Java アプレットを作成しています。keytool を使用して署名用の証明書を作成しました。使用したすべての Jar ファイルに署名しました。アプレットを起動でき、Google chrome と IEでうまく動作します。

ページが読み込まれるたびに「OK」をクリックする必要がある標準のセキュリティ警告ダイアログが表示されますが、それだけです。できます。

このセキュリティ警告を回避するために、同じ証明書を (Java コントロール パネル経由で) 署名者 CA 証明書ストアに追加しました。ページを閲覧すると、「同じ発行元 (またはそのようなもの) を尋ねないでください」を確認できるセキュリティ警告が表示されます。しかし、アプレットが機能しなくなり、Java コンソールに次の例外のリストが表示されます。

basic: Plugin2ClassLoader.getPermissions CeilingPolicy allPerms
security: SHA-256Certificate finger print: 7478E95FEAC103F0934BD2DDB669DE9A6105AD26ABA30C0C9F3A61107BFEBF4D
network: Cache entry not found [url: file:/C:/Work/Projects/OP/SPA_Notes/web/web/java/SPA_NotesApplet.jar, version: null]
basic: exception: java.lang.reflect.InvocationTargetException.
java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
    at sun.plugin2.applet.Plugin2ClassLoader.defineClassHelper(Unknown Source)
    at sun.plugin2.applet.Plugin2ClassLoader.access$100(Unknown Source)
    at sun.plugin2.applet.Plugin2ClassLoader$2.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at sun.plugin2.applet.Plugin2ClassLoader.findClassHelper(Unknown Source)
    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)
    at sun.plugin2.applet.Plugin2ClassLoader.loadCode(Unknown Source)
    at sun.plugin2.applet.Plugin2Manager.initAppletAdapter(Unknown Source)
    at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    ... 14 more
Caused by: java.lang.NullPointerException
    at sun.plugin2.applet.Plugin2ClassLoader.loadAllowedCodebases(Unknown Source)
    at sun.plugin2.applet.Plugin2ClassLoader.getPermissions(Unknown Source)
    at sun.plugin2.applet.Applet2ClassLoader.getPermissions(Unknown Source)
    at java.security.SecureClassLoader.getProtectionDomain(Unknown Source)
    at java.security.SecureClassLoader.defineClass(Unknown Source)
    at java.net.URLClassLoader.defineClass(Unknown Source)
    ... 18 more
basic: Removed progress listener: sun.plugin.util.ProgressMonitorAdapter@175db37
security: Reset deny session certificate store

私はJavaまたはそのセキュリティ設定のどちらにも慣れていないので、助けていただければ幸いです。

繰り返しますが、証明書を「Signer CA」証明書ストアに追加しないと、すべて正常に機能します。したがって、JAR ファイルの署名が問題になるとは思いません。私の自己作成証明書が署名者 CA 証明書として使用するのに適していないか、検証済み CA への信頼チェーンがないためだと推測しています (ただし、これが問題になる理由はまったくわかりません)。

4

0 に答える 0