2

私はjarSigningの問題でまったく新しいですが、数日間、これについて困っていて、多くのことを検索/学習しました。(このトピックは私の問題とは関係ありません: Java Web Start は、署名済みの jar ファイルが署名されていないと言うのはなぜですか? )

私は自分の java-web-start プロジェクトで org.apache.commons パッケージを使用しており、何年も魅力的に機能していました。先週、Java 7 update 45 の後、ユーザーは JNLP 経由で実行されるアプリケーションを実行できなくなりました。彼らが受け取るエラーは、Apache に属する一部の jar に関連する「JARSigningException」です。これらの 6 つの jar に対応する行を jnlp から削除したところ、webstart アプリケーションを開始できましたが、実行時にいくつかの例外がありました。

すべてのjarは同じ証明書を使用して自己署名されています(私自身は署名していませんが、数日前から問題がなかったので、同じ証明書で署名されているはずです)

以下のように問題のある jar ファイルを検証すると: jarsigner -verify commons-digester-1.7.jar

以下のメッセージが表示されます。

jar verified.

警告:

This jar contains unsigned entries which have not been integrity-checked.
This jar contains entries whose signer certificate has expired.
This jar contains entries whose certificate chain is not validated.

Re-run with the -verbose and -certs options for more details.

Jar ファイルが検証されている場合でも、jnlp ファイルを実行しようとすると JARSigningException が返されるのはなぜですか?

よろしくお願いします。

4

1 に答える 1

1

Java7 Update45 でのセキュリティ変更の詳細については、http: //www.oracle.com/technetwork/java/javase/7u45-relnotes-2016950.htmlを参照してください。U51 の変更により、セキュリティの問題に対する扉がさらに閉ざされ始めています。 http://java.com/en/download/faq/release_changes.xml

一般的なルールは、ダウンロードした JNLP アプリケーション内のすべての jar が同じ証明書で署名される必要があるというものでしたが、前述のように、現在、自己署名証明書に関してより厳しい制限があると思います。

このブログも見つけましたhttps://blogs.oracle.com/java-platform-group/entry/updated_security_baseline_7u45_impacts

セキュリティ スライダーの設定 (Windows - コントロール パネル -> Java の次に [セキュリティ] タブ) は、設定が [高] または [非常に高] の場合、自己署名および未署名のアプリケーションを防止します。

于 2014-01-24T19:15:42.067 に答える