私は数年前から Web Start を使用しており、jar への署名などの経験があります。Web Start を使用して RCP アプリをデプロイする最初の試みを行っていますが、実際にはすべての jar に同じ証明書で署名していますが、このエラーが発生し続けています:「jnlp の jar リソースは同じ証明書によって署名されていません」
他の誰かがこれに出くわしましたか? もしそうなら、修正方法に関するアイデアはありますか?
私は数年前から Web Start を使用しており、jar への署名などの経験があります。Web Start を使用して RCP アプリをデプロイする最初の試みを行っていますが、実際にはすべての jar に同じ証明書で署名していますが、このエラーが発生し続けています:「jnlp の jar リソースは同じ証明書によって署名されていません」
他の誰かがこれに出くわしましたか? もしそうなら、修正方法に関するアイデアはありますか?
これは、ライブラリとして使用する署名済みの jar からの古いマニフェスト エントリである可能性があります。webstart経由でjoglでこの問題に遭遇しました。これを試して:
すべての jar ファイルを解凍し、すべての META-INF ディレクトリを削除してから、jar ファイルに再度署名します。
JNLP/Webstart は、特定の JAR に対して jarsigner.exe を介した複数の署名/署名を好まないことがわかりました。BouncyCastle (署名済み) などの JAR が会社の証明書で再度署名されている場合、目視検査により、新しい証明書と署名が JAR で適切に実行されていると思われます。しかし、その JNLP は META-INF の最初の (アルファベット順?) 署名のみを読み取っているため、他の JAR (各 JAR に Corporate 署名が 1 つしかない) と一致しないと不平を言っている可能性があります。
私は、事前に署名されたBouncyCastleJARを使用してMatthewが説明したのとまったく同じ経験をしました。ただし、JREバージョン1.6.0_14以降では、複数の署名を持つJARを喜んで受け入れることがわかりました(予想どおり)。したがって、上記のJNLPの「コンポーネント拡張メカニズム」を使用する必要はありませんでした。
PS 1.6.0_14リリースノートで、この修正への明らかな参照は見つかりませんでした。ただし、複数の署名されたJARがそれ以降のすべてのバージョン(少なくとも14-17 + 24)で機能することを確認しました。
FAQ の 1 つの説明を参照してください:異なる証明書で署名された複数の JAR ファイルを使用するにはどうすればよいですか?
正しい解決策。
私のプロジェクトでは、ロード バランサー プールにいくつかのインスタンスがあり、古いバージョンのコードのインスタンスと新しいバージョンのインスタンスがあります。したがって、同じ証明書によって署名されていない証明書があります...