Windows XP上のLauch4J / NSISインストーラーのコード署名?
-
06-07-2019 - |
質問
ユーザーがインストーラーをクリックしても不明なベンダーが表示されないようにコードに署名する手順は何ですか。
私の設定は、
アプリケーションはJavaベースです。 jarをlaunch4jでラップします インストーラーはnsisに基づいています。
私のビルドプラットフォームはxpです。
インストールが完了すると、nsisではなくvistaからインストールが成功しなかったというポップアップが表示されます。どうすれば削除できますか?
解決
警告を取り除くには、setup.exeに署名する必要があります。 microsoft signtool.exeとコード署名証明書を取得し(PCにインポートされていることを確認)、バッチファイルを作成します。
signtool sign / v / s my / n" My Display Company" / d"マイディスプレイアプリケーション" / du"サポートURL" / t" http://timestamp.verisign.com/scripts/timstamp.dll" path_to_setup.exe
SignTool.exeはVisual StudioおよびPlatform SDKによってインストールされます。少しグーグルで検索してください。
他のヒント
JarSigner をご覧ください。これは公開鍵インフラストラクチャを使用して機能するため、CAによって署名された証明書を取得する必要があります。 AntとMavenの両方には、jarをビルドするときにこれを行うプラグインがあります。これは、launch4jおよびnsisでラップする前に、jarに対して行う必要があります。
nsisには慣れていませんが、インストーラーがJavaベースの場合、出力jarにも署名する必要があります。
launch4jの仕組みはわかりませんが、NSISスクリプトを変更できると思います。おそらく、「CRCCheck off」を追加する必要があります。 .exeに署名する場合。
RequestExecutionLevel(ユーザーまたは管理者)をnsisスクリプトに追加すると、Vistaの警告がなくなります(レジストリにアンインストールエントリが追加されず、exeにVistaマニフェストがない場合、インストーラーとして検出されるプログラムはこの警告を表示します) )