2 つ目の署名を .jar ファイルに追加すると、そのうちの 1 つしかないコードと組み合わせて問題が発生するという問題があります。
背景:期限切れの証明書で署名されたアプリケーションがあります。新しいバージョンの .jar ファイルをダウンロードしてクラスパスの既存のファイルの前に配置することで、それ自体を更新できるスターターがあります。
新しい証明書を取得し、新しいスターターと更新プログラムに両方のキーで署名しました。残念ながら、古いアプリケーションは起動を拒否しています:
- スターター (古い証明書で署名されたもの) がクラスパスを構築します。
- 次に、両方の証明書で署名されたクラス (「Stendhal」) jar からメソッドを呼び出します。
- このメソッドは、古い証明書のみで署名された jar からクラス ("LogUncaughtExceptionHandler") をロードします。
SecurityException: クラス "games.stendhal.client.LogUncaughtExceptionHandler" の署名者情報が、同じパッケージ内の他のクラスの署名者情報と一致しません