JavaアプレットをWebサイトにデプロイしようとしています。クリップボードにアクセスする必要があるため、署名する必要もあります。成功していません。これまでに行ったことがあります。
keytool -genkey -keyalg rsa -alias myKeyName keytool -export -alias myKeyName -file myCertName.crt
jarsigner "C:\my path\myJar.jar" myKeyName
<html> <body> <applet code="my/path/name/myApplet.class" archive="../dist/myJar.jar"/> </body> </html>
そのhtmlファイルを開くと、セキュリティ確認ダイアログボックスが表示されません(したがって、「Java.security.AccessControlException:access denied」エラーが表示されます)。これはすべてのブラウザーで発生します。
ステップがありませんか?
おそらく、あなたはいくつかの.classファイルを開いているからでしょう外部 jarファイル?
そのようにすると、警告が表示されない場合があります。そのようにしてみましたが、まだ証明書の警告が表示され、簡単な場合、実際には、分離されたクラスを持つJARからクラスにアクセスできませんでした。
特定のセットアップまたはファイル編成がその動作を引き起こす可能性があります。それをより詳細にレイアウトできる場合は、さらに役立つ可能性があります(または、すべての.classファイルをさらに別の署名済みJarに入れて、アーカイブに追加してみてください... "、anotherJar.jar")。
3つの簡単なステップ
keytool -genkey -keystore myKeyStore -alias me
keytool -selfcert -keystore myKeyStore -alias me
jarsigner -keystore myKeyStore jarfile.jar me
最初に、有効なコード署名証明書を取得することをお勧めします。 Thawte から無料の証明書を取得できます。通常、これらの証明書はS/MIMEに使用されますが、コード署名にも有効です。
2番目のオプションは、ブラウザーが呼び出しているJREのcacertファイルに自己署名証明書をインポートすることです。
次に確認することは、ブラウザーが最新のjarを実行していることを確認することです。これを行う1つの方法は、常にバージョン番号を増やすことです。もう1つのオプションは、Javaアプレットキャッシュをクリアすることです。通常はブラウザのキャッシュもクリアしますが、これは必要ありません。
Jarに署名してから、すべてのクラスファイルがキーストアで署名されていることを確認する方法を次に示します。
#!/bin/bash
KEYSTORE=/home/user/NetBeansProjects/sign/keystore
FILES=`find /home/user/NetBeansProjects/Project/dist/ -name "*.jar"`
for f in $FILES;
do echo password | /usr/bin/jarsigner -keystore $KEYSTORE -verbose $f myself;
echo "Signed $f";
/usr/bin/jarsigner -verify -verbose -certs $f | grep X.509 | sort -u;
done
あなたは言った:
そのhtmlファイルを開くと、セキュリティ確認ダイアログボックスが表示されません...
ローカルファイルシステムからファイルを開いていますか、またはHTMLファイルとアプレットjarをホストしているWebサーバーへのURLを介してファイルを開いていますか?そのため、警告が表示されません。