web-dev-qa-db-ja.com

リソースに未署名のエントリが見つかりました

次のJNLPファイルがあります。

<jnlp spec="1.0+" codebase="http://****:****" href="tcm2012.jnlp">
  <information>
    <title>TCM 2012</title>
    <vendor>Drift og Performance, *** Servicecenter</vendor>
    <homepage href="http://******"/>
    <description/>
  </information>
  <security>
    <all-permissions/>
  </security>
  <resources>
    <j2se version="1.6+"/>
    <jar href="tcm2012.jar"/>
  </resources>
  <application-desc main-class="com.****.kundeservice.TCMApplication"/>
</jnlp>

これで、Webから実行しようとすると、次のエラーが表示されます。

Found unsigned entry in resource

次の実行で

com.Sun.deploy.net.JARSigningException: Found unsigned entry in resource: http://*****:****/tcm2012.jar
at com.Sun.javaws.security.SigningInfo.getCommonCodeSignersForJar(Unknown Source)
at com.Sun.javaws.security.SigningInfo.check(Unknown Source)
at com.Sun.javaws.security.JNLPSignedResourcesHelper.checkSignedResourcesHelper(Unknown Source)
at com.Sun.javaws.security.JNLPSignedResourcesHelper.checkSignedResources(Unknown Source)
at com.Sun.javaws.Launcher.prepareResources(Unknown Source)
at com.Sun.javaws.Launcher.prepareAllResources(Unknown Source)
at com.Sun.javaws.Launcher.prepareToLaunch(Unknown Source)
at com.Sun.javaws.Launcher.prepareToLaunch(Unknown Source)
at com.Sun.javaws.Launcher.launch(Unknown Source)
at com.Sun.javaws.Main.launchApp(Unknown Source)
at com.Sun.javaws.Main.continueInSecureThread(Unknown Source)
at com.Sun.javaws.Main.access$000(Unknown Source)
at com.Sun.javaws.Main$1.run(Unknown Source)
at Java.lang.Thread.run(Unknown Source)

誰でもこの問題を修正する方法を知っていますか?

27
Marc Rasmussen

これは私のために働いた:

コントロールパネル/ Javaに移動します。

次に、「設定」ボタンをクリックし、「一時ファイルをコンピューターに保存する」オプションを有効にします。

変ですが、うまくいきました!

23
martins.tuga

この問題は、新しいJavaバージョンで署名する場合、古いJavaバージョン。

  • 1.8u74以前で署名し、すべてのバージョンで動作します
  • 1.8u101以降で署名すると1.7u80以降で動作しますが、クライアント上の古いバージョンでは動作しません。

符号アルゴリズムに互換性のない変更があるようです。

6
Horcrux7

アプリケーションにも同様の問題がありました。

Java javawsでデプロイされたSwingアプリケーション:

  • jRE 1.6を使用してアプリケーションを実行すると、例外が発生します
  • jRE 1.7とJRE 1.8を使用してアプリケーションを実行すると動作します

すべてのjarファイル、MANIFEST.MFなどをチェックしましたが、すべて問題ありませんでした。最後に、新しいTSAエンドポイントを使用してjarに署名したことを発見しました。

このリソースから http://docs.Oracle.com/javase/7/docs/technotes/tools/windows/jarsigner.html 読みました時間を生成するにはスタンプ、jarsignerは、RFC 3161で定義されたタイムスタンププロトコル(TSP)を使用してTSAと通信します。成功すると、TSAから返されたタイムスタンプトークンは、署名ブロックファイルに署名とともに保存されます。

誰かがこの問題についてより多くの洞察を与えることができますか?特に、特定のTSAの使用を強制されたくありません。 TSAにこのような違いがあるのはなぜですか?ありがとう

2
CARCARLO

linuxmaschine(JDK 6 U45を使用)でコンパイルするときに同じ問題が発生しました。しかし、私は署名したstartしようとしたときに、このエラーonlyを受け取りましたJava 6 U45。

newerJava-Version(たとえばJava 8)でアプリケーションを起動しようとすると、すべてOKでしたエラーメッセージなし。

windowsmaschineを使用してプロジェクトをコンパイルすると(6 Update 45でも)、Java 6 U45を開始します。

ちょうど私の2セント....乾杯!

0
Ben

私の場合、アプレットは実際にMETA-INFフォルダに未署名のエントリがありました。 )それを修正する1つの方法は、再署名することです。しかし、Java 8個の自己署名アプレットは demoted 署名なしのものとほぼ同じレベルでした。アプレットは追加の特権を必要としませんでした。 n-sign itおよび 信頼済みサイトのリストに追加 .

0
Vadzim