この質問はいくつかの有効な点を提起しており、thkala は信頼できる機関から発行された CA の価値について適切な防御を提供しました。
しかし、通常の実行可能 JAR ファイルではなく、JNLP の CA が必要なのはなぜでしょうか? その理由は、JNLP がブラウザーから起動されることを意図しているためだと思います。JNLP ファイルは、サンドボックス内のブラウザーで実行されるアプレットに代わるものです。理論的には、コンピューターに害を及ぼさないように保護されています。ユーザーは、ページにアクセスするだけで、アプレットで実行されている jar ファイルを起動できます。同様に、ボタンをクリックするだけで JNLP を起動できます。Chrome では、最初に JNLP を保存するよう求められます。しかし、IE や Firefox では、起動ボタンや通常の Web リンク (Web ページの他のボタンやリンクのように見えます) が表示され、クリックするだけでプログラムが実行されます。これは、実行可能ファイルをダウンロードして実行するよりも少し簡単です。
一方、実行可能な JAR ファイルをインストールするか、さまざまな方法で実行することができます。たとえば、一部の MRI 表示ソフトウェアは JVM で実行され、患者または医師はカスタム ソフトウェアを起動して MRI を表示する必要があるため、MRI と一緒に CD にパッケージ化されることがよくあります。しかし、このソフトウェアは「インストール」されません。CDから実行するだけです。
一方、JNLP は、スタンドアロン プログラムというよりもインストーラーのように機能します。デスクトップ ショートカットを作成し、ファイルの関連付けを行うことができました。ユーザーの観点からは、私の JNLP アプリは独自のアイコンとファイル タイプを備えたネイティブ プログラムのように感じられます。ブラウザから非常にシームレスに実行され、クライアント PC に自由にアクセスできるため、「署名され、信頼されている」と、ユーザーはこれを実行する際により安全に感じることができます。
歴史的に、これが JNLP とアプレットが署名される理由であると私は信じています。私は、この署名の実用的価値は失効したと考えています。
まず第一に、CA からアプリに署名するには数百ドルかかるため、多くの企業はこれをスキップします。自己署名コードを実行する協力アプリがいくつかあり、ユーザーはブラウザーが警告を表示した後、[同意する] ボタンをクリックすることを知っています。
さらに重要なことに、Java の最近のセキュリティ更新は、署名されていないコードがサンドボックスから出て、署名されたアプレットまたは JNLP が実行できるすべてのことを実行できるようにするパッチのバックドアを中心にしています。オラクルがサンドボックスから抜け出す方法にパッチを当てるたびに、誰かが別の抜け道を見つけているようです。最善の解決策は、ランタイムに常にプロンプトを表示させることですJava アプレットまたは JNLP ファイルを実行する権限を持つユーザー。自己署名された JNLP ファイルがローカル ファイル システムと LAN にアクセスできるだけでなく、署名されていない JNLP ファイルも同様にアクセスできます。ユーザーが Oracle からの最新のセキュリティ更新プログラムを持っていて (もちろんほとんどの場合そうではありません)、サンドボックスから抜け出す次の巧妙な方法が発見される前であれば、サンドボックス モデルは意図したとおりに実際に機能しています。しかし、ほとんどのユーザーにとって、ほとんどの場合、sanbox モデルは意図したとおりに機能していません。すべての JNLP ファイルが実行許可を求め、通常の JAR ファイルと同じアクセス権を与える時が来たと思います。
そうすれば、6 か月ごとにセキュリティ証明書を再作成する必要がなくなります。