3

コマンドラインからJavaアプリケーションを実行したときに「アプリケーションのデジタル署名を確認できません」という警告メッセージが表示されないようにする方法はありますか?

継続的インテグレーションサーバーでこのようなアプリケーションを起動できるコマンドラインソリューションを探しているので、手動による介入を必要としないソリューションが必要です。

また、これはセキュリティ上のリスクとなる可能性があるため、どのアプリケーションでもこの警告を無効にしないことをお勧めします。

役立つかどうかはわかりませんが、署名の「name」、「publisher」、「from」フィールドの値は知っています。

Javaデジタル署名警告のスクリーンショット

念のために言っておきますが、私はこのアプリケーションに署名する方法について質問していません。

アップデート1

解決策はkeytoolコマンドラインから証明書をインポートするために使用することだと思いますが、この後コントロールパネルアプレットに表示されず、アプリケーションがまだそれを必要としているため、何らかの理由で正しくインポートできません。

keytool -importcert -file my.cer -alias alf2 -storepass changeme -noprompt

これはデフォルトkeystoreに関連するものですか、正しいキーストアにインポートしていることをどのように確認できますか?

アップデート2

ネット上で多くの調査を行った後、私はある程度の進歩を遂げ、少なくとも次のことに取り組みましWindows 7Java 6keytool -importcert -file my.cer -keystore "%USERPROFILE%\AppData\LocalLow\Sun\Java\Deployment\security\trusted.certs" -storepass "" -noprompt -v

Sunは、ドキュメントでデフォルトのキーストアの実際の場所とデフォルトのパスワードが空白であるという事実を指定できなかったようです。

しかし、これで終わりではありません。これは、自動化ユーザーアカウントでの実行が失敗したため、このユーザーがまだキーストアを持っていなかったために失敗し、コマンドラインツールkeytoolが空のパスワードでキーストアを作成できず、少なくとも6文字。サンのフォーラムトレッドを参照してください...

4

5 に答える 5

2

trusted.certs ファイルはユーザー (プロファイル) ベースです。keytool を使用すると、信頼できるルート CA を「cacert」ファイルに追加することもできます。このファイルには、Java のデフォルトの信頼できる CA が保存されています。XP の cacert ファイルの場所 (Java のバージョンによって異なります): C:\Program Files\Java\jre6\lib\security

詳細はこちら:

デフォルトのパスワードは次のとおりです: changeit

于 2011-03-22T12:00:01.020 に答える
1

次の 2 つの方法があります。

  • ソフトウェアのサプライヤに、適切な署名を付けて再発行してもらいます。「詳細情報」リンクに、署名を検証できない理由が表示されますが、最も可能性の高い原因は、署名が自己署名 CA 証明書を使用して作成されたか、期限切れになった証明書です。(サプライヤが助けてくれない場合は、独自の証明書で JAR ファイルを再署名できる場合があります。)

  • 関連する署名証明書を「信頼できる証明書」として JVM の証明書ストアに追加します。残念ながら、アプリケーションを実行する必要があるすべてのマシン上のすべての JVM に対してこれを行う必要があります。

于 2010-09-20T10:02:12.390 に答える
1

ユーザーの同意なしに署名されていないアプリケーションの実行が許可されている場合、ユーザーのセキュリティ/プライバシーに深刻な危害が及ぶことになります。

アプリに署名してもらうか、ユーザーが発行者を「信頼できる」リストに手動で追加しない限り、答えは「いいえ」です。

詳細はこちら

于 2010-09-20T10:24:53.263 に答える
0

証明書ストアが実際に存在しない場合、実際に Windows XP キーツールがパスワードを要求するかどうかはわかりません。そのため、証明書をインポートする前に手動で作成するか、どこかからストアをコピーする必要があります。ユーザーストアにはパスワードがありませんでした。

于 2012-02-15T13:27:40.030 に答える
-1

java.home/lib/securityにmypolicy.policyなどのファイルを作成し、署名したコードにすべての権限を付与して、このファイルをjava.securityに追加する必要があると思います(たとえば、java.policyパスの行の下)この警告ウィンドウは二度とプロンプトを表示しません

于 2011-11-21T12:21:12.640 に答える