オフィスで使用される小さな javafx2 アプリケーションがあります。Firefox から実行する人もいれば、デスクトップ アプリとして実行する人もいます。ウェブスタートは素晴らしいです。
現在のアプローチは、これを jnlp ファイルに追加したことです。
<security>
<all-permissions/>
</security>
次に、keytool を使用してキーストアにキーを作成します。
keytool -genkey -keystore yourKeystore -alias keyname
そして、jarsigner を使用して、ユーザーの PC にあるすべての jar ファイルに署名します。
jarsigner -keystore ./myapp.keystore -storepass xxx -keypass yyy <path to jar file> keyname
そのため、ユーザーはデスクトップのショートカット ファイル (jnlp ファイル) を使用してアプリを起動するか、Firefox でアプリを参照します。これはうまく機能しますが、最近では次のようなダイアログが表示されます。
UNKNOWN 発行元によるアプリケーションの実行は、将来のリリースでブロックされます
その将来のリリースが出たらどうなるか心配です。
私は、このすべてのコード署名について深く理解していません。アプリのリリース者が認証局によって認識されている会社/個人であることを証明するために使用されるファイルにバイナリデータを埋め込むことで機能することを私は知っています(これはjarsignerがAFAIKで行っていることです)。証明書は、Windows や Linux などの OS、Firefox や Safari などの Web ブラウザによって認識され、Java もユーザーとシステムの 2 つのレベルで証明書を認識します。Windows や Linux などの OS でデフォルトで認識される広く受け入れられている認証局 (Verisign など) があります。ウェブブラウザも一部の認証局を認識することは知っていますが、それらが認識するリストは OS が認識するリストとは異なる可能性があると思います。Javaもいくつか認識していると思いますが、何がわかりません。また、~/.java/deployment/deployment.properties、deployment.system.security.trusted.certs でキーストアを指定することにより、システム レベルで構成されたキーストアを Java で使用できることも知っています。証明書にお金を払いたくない場合は、独自の証明書を作成できます (これは私が行っていたことです)。したがって、証明書は UNKNOWN 発行元からのものです。deployment.system.security.trusted.certs を介してキーストアを指定すると、オフィスでこの問題が解決することを期待していましたが、明らかに解決していません。彼はこの証明書を認識しています。そこで、Windows で makecert を使用して証明書を作成し、GPO 経由でクライアント PC にプッシュできるようにすることを考えています。私の理解では、これにより、OS によって認識される証明書が作成されます。しかし、makecert で作成された証明書が、たとえば Windows、Firefox、および Java の verisign 証明書と同じように扱われるかどうかはわかりません。また、UNKNOWN が Java 内のリストを参照しているのか、それとも認証局が OS によって認識されていないという事実を参照しているのかはわかりません。
私の質問:
- 上記の説明で私が犯した間違いを誰かが修正できれば幸いです。私は何かを誤解していると思いますが、何がわかりません。
- 証明書にお金を払わない限り、Webstart が機能しないとは信じられません。私たちが必要としているのは、システム管理者が、オフィスの PC に特定の証明書を認識させたいと言うことができるメカニズムだと思います。将来これを行う方法を知っている人はいますか?
- 証明書を購入する必要がある場合、何に注意すればよいか、またはそれが一般的にどのように機能するかを誰かに教えてもらえますか? jarsigner を同じように使用できますか?
- 証明書を購入する必要がある場合、選択できる認証局のリストはありますか? これは管理上のオーバーヘッドになるため、明らかに私は最も安いものを選びたいと思っています。
ご協力ありがとうございました。