4

私は Java で書かれたアプリケーションを持っており、Mac OS X、Windows、および Linux で配布される予定です。現在、次のように各プラットフォーム用にアプリをパッケージ化しています (ただし、代替が必要な場合は変更します)。

  • Mac OS X: Eclipse を使用して、[ファイル] -> [エクスポート] に移動し、[Mac OS X アプリケーション バンドル] を選択します。
  • Windows: Launch4jを使用して、jar ファイルを exe ファイルにバンドルします。
  • Linux: Jnixを使用して jar ファイルを sh ファイルにバンドルします。

問題は、自分のプログラムが信頼されていないという問題に直面し始めていることです。Google Chrome は、私のアプリのベータ版は信頼できるソースからのものではないと報告し、Windows 8 Smartscreen フィルターは同じことを行います. これらのセキュリティ対策でアプリを信頼できるようにする唯一の方法 (実際に配布したい場合は必ず必要になります) は、アプリに署名することだと理解しています。ただし、これを行う方法に関する貴重な小さなドキュメントを見つけました。そのほとんどは 1 つのプラットフォーム用です (たとえば、これは Windows 8 の署名について教えてくれます)。

私の質問は: Java コードに一度署名すると、作成した実行可能ファイルに自動的に署名する方法はありますか? それとも、各実行可能ファイルに個別に署名する必要がありますか? 後者の場合、使用できるコード署名機関は 1 つですか、それとも異なるグループで個別に署名する必要がありますか?

4

1 に答える 1

4

ParrotMacからの提案で、私は Digicert のライブチャットを行うことになり、これらの質問のいくつかを "David" に尋ねました。これが彼が言わなければならなかったことです(明確にするために編集されています):

Java コードまたは最終製品の実行可能ファイル、またはその両方を認証しますか?

最終製品に署名する必要があります。

証明書を 1 つ購入して他のプラットフォームで使用するか、それとも個別に購入しますか?

必要に応じて、コード署名証明書を購入し、選択したプラットフォーム (Java jar ファイルなど) 用にダウンロードしてから、別のプラットフォーム (Windows .exe 用の Authenticode など) 用にキーを再設定できます。キーの再作成は無料で、証明書が有効である限り、さまざまなプラットフォーム用に何度でも証明書のキーを変更できます。キーを再生成しても、以前の証明書が無効になるわけではなく、別のプラットフォーム用に別の証明書をダウンロードできるようになるだけです。digicert 用に選択するプラットフォームは、最初にキーが設定されたプラットフォームです。

私のプラットフォーム ターゲットの 1 つは Linux です。Linux コード署名などはありますか? それとも、OS X と Windows だけですか?

Linux で証明書を使用できます。Windows や OS X の場合とは異なるツールを使用して署名するだけです。

それで、あなたはそれを持っています。少なくとも digicert (他のコード認証会社もあると思います) からは、証明書を 1 つ購入して複数のプラットフォームで無料で使用できます。次に、最終製品を認証します。生の jar ファイルをそのように配布しない限り、認証は不要です。

ただし、Windows 8 を乗り越えるには、より安全なコード署名を取得する必要があることがわかりました。

Windows 8 の Smartscreen フィルターを通過するためにコード署名は機能しますか?

Windows 8 Smartscreen フィルターを通過するには、EV コード署名証明書が必要です。EV はより多くの費用がかかりますが、主にそれに付随する追加の検証が原因です。非 EV 証明書の場合と同様に、EV でも同じことができます。

そして念のため、証明書を Mac OS X App Store やその他のストアに送信する場合、証明書が必要かどうかを尋ねてみました。

このクロスプラットフォーム アプリを Mac OS X App Store またはその他のストアで配布したい場合、証明書は必要ですか? もしそうなら、それは同じ証明書ですか?

Google のアプリ ストアや Mac App Store などのストアでは、信頼できる証明書によって署名されたソフトウェアを入手する必要があります。しかし、必要なものを正確に判断するために、その特定の店舗の要件を表示する必要があります。

于 2013-05-21T02:39:54.563 に答える