2

社内の自己署名アプレットで恐ろしい LiveConnect 警告が表示されます。Java 1.7.0_45 を使用しています。私が読んだことによると、マニフェストに Caller-Allowable-Codebase * を追加し、Trusted-Library 属性を削除することで、これらを取り除くことができるはずです。アプレットを構築するための私の ant ターゲットは次のようになります。

<jar destfile="MyApplet.jar">
  <manifest>
    <attribute name="Main-Class" value="com.mycompany.MyApplet"/>
    <attribute name="Permissions" value="all-permissions"/>
    <attribute name="Codebase" value="*"/>
    <attribute name="Caller-Allowable-Codebase" value="*"/>
  </manifest>
  [...]
</jar>
<signjar jar="MyApplet.jar" [...] />

残念ながら、これは効果がありません。まだ警告が表示されます。1.7.0_45 を実行していること、およびブラウザがキャッシュされた古いアプレットのコピーを使用していないことを確認しました。クライアントは、OS X 10.7.5 で実行されている Firefox 25.0 です。

4

3 に答える 3

2

見つかりました - 秘訣は、証明書を正しいキーストアにインポートすることです。アプレットの構築に使用するキーチェーンから証明書をエクスポートしました。

keytool -exportcert -file appletkey.cer -alias appletkey -keystore mykeystore

...そして、それをグローバル cacerts キーストアにインポートします。

keytool -importcert -file appletkey.cer -alias appletkey -keystore $JRE_HOME/lib/security/cacerts -storepass changeit

注意が必要な部分は、それをインポートする cacerts のインスタンスを特定することです。構成によっては、多数の JVM がインストールされている場合があり、それぞれに独自の cacert があります。Macでは、正しいものは

/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/lib/security/cacerts

そしてWindowsでは

C:\Program Files (x86)\Java\jre7\lib\security\cacerts

(64 ビット JVM を使用している場合は、「Program Files (x86)」を「Program Files」に置き換えてください。)

Linux では、$JRE_HOME/lib/security/cacerts も同様であると想定しています。$JRE_HOME の値は、インストール方法によって異なります。

注意:証明書をユーザー固有のキーストアにもインポートしようとしましたが、それを機能させることができませんでした。それをグローバルキーストアにインポートするのは少し強引ですが、私のユースケースではそれで十分です. 最初の Java アプレットの警告と LiveConnect の警告はどちらもなくなりました。また、これは上記とまったく同じようにアプレット マニフェストを使用していることにも注意してください。他の回答者が示唆したように、マニフェストに問題はなく、JVM に証明書を信頼させるだけで済みました。

于 2013-11-26T16:12:39.237 に答える
0

更新: アプレットは、自己署名ではなく、ブラウザの信頼できる CA によって正式に署名されています。これは私の間違いでした。申し訳ありません。元の答え:

私は自己署名アプレットでこれらの属性を使用しており、基本的なクリックして実行する質問のみを使用しており、「二度と質問しない」とマークすることができます。

クリックして警告を実行

毎回表示されるライブ接続の警告が表示されません。

ライブ接続警告

最初のものは必須です。正確にはどのセキュリティ警告を意味しますか?

*画像は他の質問の再利用であり、私とは関係ありません...

于 2013-11-11T10:33:43.930 に答える