web-dev-qa-db-ja.com

InnoSetup-コード署名証明書

Comodoからコード署名証明書を購入しました。 Inno Setup Installerで展開したい小さなMS Accessデータベースを構築しました。スクリプトは正常に実行されますが、コード署名は完全に初めてです。

インストールファイルに署名するにはどうすればよいですか?証明書に署名するには外部ソフトウェアが必要ですか、それともInno Setup内から署名できますか?

同様の質問への回答を検索しようとしましたが、開始するために必要なものとその方法を示すことができませんでした。

18
mtn

あなたがすることは非常に簡単です、それに沿ってやってみてください

  1. Inno Setupを開き、Tools-> Configure Sign Tools The sign tool dialog
  2. 「追加...」をクリックして名前を付けます。signtool.exeを Microsoft から使用しているため、MsSignという名前にします。これで、次のようになります enter image description here
  3. 次に、signtool.exeを使用しているため、署名に使用するツールのコマンドラインを要求されます。

signtool.exe sign/tr http://timestamp.digicert.com /td sha256/fd sha256/a $ p

最後の$ pに注意してください。InnoSetupはこれを必要とします...これを持っているはずです。signtoolへのパスを追加したことに注意してください。パス変数でexeを実行し、DigiCertのタイムサーバーを使用して署名にタイムスタンプを付けています。 enter image description here

  1. スクリプトで、次のコードをセットアップセグメントに追加します

    SignTool = MsSign $ f

この行は、コード署名を使用するようコンパイラーに指示します。これは、MsSignを呼び出した変数を使用し、セットアップによって生成された出力に署名します。

次のようになります enter image description here

生成されたEXEを見ると、デジタル署名が表示されます enter image description here

コマンドラインが署名を取得できるように署名ストアを準備し、コード署名の署名が1つしかないため、これに名前を付ける必要がないため、これは私にとってはうまくいきます。パラメーターは私のものとは異なる場合があります。最後に、セットアップが機能し、コードが署名される限り、それは問題ありません。

助けてあなたがそれを必要とすることを覚えていることを願っています$ p変数で

17
PPann

実行可能ファイル(Inno Setupによって生成されたインストーラー)に署名するには、バッチファイル(.bat)を作成し、このコンテンツをそこに配置するだけです。

"c:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\signtool.exe" sign /f Installer_Wizard_Code_Signing_Certificate.pfx /p password123 /t http://timestamp.verisign.com/scripts/timstamp.dll MySetupFile.exe

どこ

"c:\ Program Files(x86)\ Microsoft SDKs\Windows\v7.0A\Bin\signtool.exe"はMicrosoft署名ユーティリティへのパス( Microsoft SDKの一部)

Installer_Wizard_Code_Signing_Certificate.pfxが証明書です

password123は証明書のパスワードです

MySetupFile.exeは、署名するセットアップファイルです

すべてのファイルを1つのディレクトリ(証明書、署名のセットアップ、およびバッチファイル)に配置し、バッチファイルを実行します。 Signtoolは証明書でファイルに署名し、公式サーバーに対して有効性をチェックします。

http://timestamp.verisign.com/scripts/timstamp.dllサーバーを使用できますが、Comodo証明書があれば問題ありません。 )

15
Slappy

Microsoftからsigntool.exeをダウンロードしてインストールしたら、前の回答のステップ3でパス変数に追加されていない場合は、signtool.exeの完全パスを署名ツールのコマンドに入力します。

D:\GUI\signtool.exe sign /tr http://timestamp.digicert.com /td sha256 /fd sha256 /a $p

enter image description here

1
jonbaker87