17

私は数年前から Web Start を使用しており、jar への署名など​​の経験があります。Web Start を使用して RCP アプリをデプロイする最初の試みを行っていますが、実際にはすべての jar に同じ証明書で署名していますが、このエラーが発生し続けています:「jnlp の jar リソースは同じ証明書によって署名されていません」

他の誰かがこれに出くわしましたか? もしそうなら、修正方法に関するアイデアはありますか?

4

7 に答える 7

12

jar を確認した後に同様の問題が発生したとき、サードパーティの jar が他の誰かによって署名されていることが判明しました。

他の証明書によって署名された jar 用に別の jnlp ファイルを作成し、jnlp ファイルからこの jnlp を読み取る必要があります。

<resources>
  ...
  <extension name="other" href="other.jnlp"/>
</resources>

ここまたはここで例を見つけることができます。

于 2009-01-10T08:53:02.553 に答える
3

これは、ライブラリとして使用する署名済みの jar からの古いマニフェスト エントリである可能性があります。webstart経由でjoglでこの問題に遭遇しました。これを試して:

すべての jar ファイルを解凍し、すべての META-INF ディレクトリを削除してから、jar ファイルに再度署名します。

于 2009-01-10T14:25:25.957 に答える
3

JNLP/Webstart は、特定の JAR に対して jarsigner.exe を介した複数の署名/署名を好まないことがわかりました。BouncyCastle (署名済み) などの JAR が会社の証明書で再度署名されている場合、目視検査により、新しい証明書と署名が JAR で適切に実行されていると思われます。しかし、その JNLP は META-INF の最初の (アルファベット順?) 署名のみを読み取っているため、他の JAR (各 JAR に Corporate 署名が 1 つしかない) と一致しないと不平を言っている可能性があります。

于 2009-02-07T18:26:24.350 に答える
2

私は、事前に署名されたBouncyCastleJARを使用してMatthewが説明したのとまったく同じ経験をしました。ただし、JREバージョン1.6.0_14以降では、複数の署名を持つJARを喜んで受け入れることがわかりました(予想どおり)。したがって、上記のJNLPの「コンポーネント拡張メカニズム」を使用する必要はありませんでした。

PS 1.6.0_14リリースノートで、この修正への明らかな参照は見つかりませんでした。ただし、複数の署名されたJARがそれ以降のすべてのバージョン(少なくとも14-17 + 24)で機能することを確認しました。

于 2011-06-08T08:30:34.823 に答える
2

FAQ の 1 つの説明を参照してください:異なる証明書で署名された複数の JAR ファイルを使用するにはどうすればよいですか?

正しい解決策。

于 2010-11-09T18:17:00.873 に答える
0

私のプロジェクトでは、ロード バランサー プールにいくつかのインスタンスがあり、古いバージョンのコードのインスタンスと新しいバージョンのインスタンスがあります。したがって、同じ証明書によって署名されていない証明書があります...

于 2013-03-25T19:25:08.103 に答える