自己開発アプリへ

自己署名(オレオレ署名)を追加する方法 2022


Visual Studio を用いて、自分で作ったソフト・アプリは、実行しようとすると、
Windows のセキュリティー警告が出て、すぐには実行できない。
(「詳細」をクリックすると、「実行」ボタンが出て、可能となるが・・・。)

それを防ぐには、有料のデジタル証明を添付すれば良いらしいが、
結構、値段が高く、馬鹿らしい!!

それとは別に、自分で、勝手に作った、
自己署名(オレオレ署名)を添付するという方法があるが、
これをした所で、Windows のセキュリティー警告は結局、消えない!!

ただ、警告の出る回数は減らせるらしいが・・・。どちらにしろ、あまり意味は無い。

何度か無理矢理、使っている内に出なくなる。
もしくは、ソフトのプロパティの最下部に出る、「実行の許可」のチェックを入れると、
普通に使えて、その部分の表示も2度と出なくなる。

従って、単なる、自己満足のために、自己署名を加えるという意味はあるかも知れない・・・!??

一応、それによって、キュリティー警告時に発行元がちゃんと表示され、
更にソフトのプロパティで、「デジタル署名」というタブが増える。

オレオレ署名を追加する方法

参考にした URL
https://mseeeen.msen.jp/code-signing-certificate/
https://learn.microsoft.com/ja-jp/azure/active-directory/develop/howto-create-self-signed-certificate
https://learn.microsoft.com/ja-jp/dotnet/framework/tools/signtool-exe
ネットで検索すれば、いくつかの方法が出るが、私が成功した方法を以下に:

@ Visual Studio Community 版(フリー)をネット経由でインストール
昔は、DVD のソフトを買って入れたが、今は、フリーで使えるバージョンが手に入る!!

A c:\cert  というフォルダを作り、そこで作業する。
(署名を添付したい実アプリファイルも、ここへ置く。)

B 「全てのアプリ」から「Visual Studio 2022」フォルダの 「x64 コマンドプロンプト」を実行
(これでないと、実行ファイル makecert, pvk2pfx, signtool が使えない!!パスの関係で。)

C 以下の 「>」の次行のコマンドを入力:
(コピーして、メモ帳等に貼り付け、必要な部分を書き換えて、コピペ+「Entre」で実行できる。)

>
cd c:\cert

次の「開発者名」は自分の名前でも会社名でも自由に。例) ABC_Co

C;\cert
>
makecert -n "CN=開発者名,O=開発者名,C=JP" -b 01/01/2023 -e 01/01/2100 -r -sv 開発者名.pvk 開発者名.cer

秘密鍵のパスワード PASSWORD を自分で決めて、
3回入力
    → pvk と cer ファイルができる!!

C;\cert
>
pvk2pfx -pvk 開発者名.pvk -spc 開発者名.cer -pfx 開発者名.pfx -f -pi "PASWORD"
   → pfx ファイルができる!!
ここで、自分で作ったソフト 「アプリ名.exe」を同じフォルダ c:\cert に入れて、

C;\cert
>
signtool.exe sign /f 開発者名.pfx /t http://timestamp.digicert.com /p "PASWORD" /fd SHA256  アプリ名.exe


成功すれば次の表示に
Done Adding Additional Store
Successfully signed: アプリ名.exe
 →「アプリ名.exe」 に自己署名ファイル「開発者名.pfx」が添付される。


次のエラーが出る場合は、署名の有効期限の設定が間違っている可能性大!!
Done Adding Additional Store
SignTool Error: The signer's certificate is not valid for signing.
SignTool Error: An error occurred while attempting to sign: アプリ名.exe