Windowsが「不明な発行元」からのアプリケーションについてエンドユーザーに警告しないように、署名する必要がある EXE ファイルがあります。私はWindows開発者ではありません。問題のアプリケーションは、スクリーンセーバーアプリケーションを生成するアプリケーションから生成されたスクリーンセーバーです。そのため、ファイルの生成方法には影響しません。
Verisign またはinstantssl.comのような CA からの コード署名 証明書が必要であることはすでにわかっています。私が理解していないのは、EXEファイルに署名するために(可能な限り)する必要があることです。簡単な説明とは何ですか?
メル・グリーンの答えは私をさらに連れて行きましたが、サインツールは私にどんな場合でも使用する証明書を指定することを望んでいます。無料でコード署名証明書を取得して、何らかの形でこれが機能するかどうかをテストできますか?
また、正しい証明書の種類を指定してください。ほとんどのサイトでは、「コード署名」についてのみ言及し、実際にユーザーがコンパイルするアプリケーションの署名について説明しています。これは私には当てはまりません。
Microsoftの署名ツール を使用して試すことができます
Windows Server 2008および.NET 3.5用のWindows SDKの一部としてダウンロードします。ダウンロードしたら、次のようにコマンドラインから使用できます。
signtool sign/a MyFile.exe
これは、利用可能な「最高の証明書」を使用して、単一の実行可能ファイルに署名します。 (証明書がない場合は、SignToolエラーメッセージが表示されます。)
または、試すことができます:
サインツール
これにより、アプリケーションに署名するためのウィザードが起動します。 (このオプションは、Windows SDK 7.0以降では使用できません。)
実行可能ファイルの署名プロセスをテストするために使用できる証明書を取得したい場合は、.NETツールMakecertを使用できます。
独自の証明書を作成し、それを使用して実行可能ファイルに署名したら、 UAC がユーザーに通知するために、マシンの信頼されたルートCAとして手動で追加する必要があります。信頼できるソースからのものであることを実行します。 重要。 ルートCAとして証明書をインストールすると、ユーザーのプライバシーが危険にさらされます。Dellで何が起こったのかを確認してください。 Windowsの場合:
これがこれを行おうとする人にもっと情報を提供することを願っています!
あなたが得ることができます 自由 安価なコード署名証明書 Certumから オープンソース開発を行っている場合。
私は彼らの証明書を1年以上使用してきましたが、Windowsからの不明な発行者のメッセージを取り除きます。
コードに署名する限り、次のようなスクリプトから signtool.exe を使用します。
signtool.exe sign /t http://timestamp.verisign.com/scripts/timstamp.dll /f "MyCert.pfx" /p MyPassword /d SignedFile.exe SignedFile.exe
ASPの雑誌ASPectsには、コードに署名する方法に関する詳細な説明があります(記事を読むにはメンバーである必要があります)。 http://www.asp-shareware.org/ からダウンロードできます。
方法の説明へのリンクは次のとおりです 独自のテスト証明書を作成 。
これ も興味深いかもしれません。
私は自分の仕事で同じシナリオを使用しましたが、ここに私たちの調査結果があります
最初に行う必要があるのは、証明書を取得し、コンピューターにインストールすることです。認証局またはmakecertを使用して証明書を生成します。
ここに2つのオプションの長所と短所があります
証明書を購入する
Makecertを使用して証明書を生成する
実行可能ファイルに署名する
必要なファイルに署名する方法は2つあります。
コンピューターにインストールされた証明書を使用する
signtool.exe sign/a/s MY/sha1 sha1_thumbprint_value/t http://timestamp.verisign.com/scripts/timstamp.dll /v "C:\ filename .dll "
証明書ファイルを使用する
signtool sign/tr http://timestamp.digicert.com /td sha256/fd sha256/f "c:\ path\to\mycert.pfx"/p pfxpassword 「c:\ path\to\file.exe」
署名をテストする
方法1:signtoolを使用する
移動:スタート>タイプCMDの実行> OKをクリックしますコマンドプロンプトで、signtoolが存在するディレクトリを入力します次を実行します。
signtool.exe verify/pa/v "C:\ filename.dll"
方法2:Windowsを使用する
署名済みファイルを右クリックし、[プロパティ]を選択し、[デジタル署名]タブを選択します。署名は[署名リスト]セクションに表示されます。
これがお役に立てば幸いです
ソース:
Linuxボックスで実行可能ファイルに署名する必要がある場合の別のオプションは、 Monoプロジェクトツール のsigncodeを使用することです。 buntuでサポート です。
参照 https://steward-fu.github.io/website/driver/wdm/self_sign.htm 注:Microsoft SDKのsigntool.exe
1.初回(プライベート証明書を作成するため)
Makecert -r -pe -ss YourName YourName.cer
certmgr.exe -Add YourName.cer -s -r localMachineルート
2.後(サインをアプリに追加するため)
signtool sign/s YourName YourApp.exe
さらに別のオプションとして、Windows 10で開発しているが、Microsoftのsigntool.exeをインストールしていない場合、Windows上のUbuntuでBashを使用してアプリに署名できます。以下が概要です。
https://blog.synapp.nz/2017/06/16/code-signing-a-windows-application-on-linux-on-windows/
次のリンクを使用して.exe(setup/installer)ファイルに署名します(Microsoft setup signtoolを使用せずにexe/setupファイルに署名します)
https://ebourg.github.io/jsign/#files
サンプルコマンドJava -jar jsign-2.0.jar --keystore keystore.jks "--alias alias --storepass password MyInstaller.exe
私のために働いた:)