電子署名(コードサイニング)備忘録(Codomo と ExEpress)

備忘録追記:2019/5/22 1年更新後のエキスポート→他のPCでインポートする時にパスワードでハネられたので、原因は???ということで備忘録。暗号化はTripleDES-SHA1でよい。

エクスポートの時のパスワードの暗号化はTripleDES-SHA1でよい。

「ダウンロードする時に発行元不明と警告が出るけど、大丈夫?」

「ダウンロードする時に発行元不明と警告が出るけど、大丈夫?」という電話がかかってくることがありますが、その電話代も時間もお互いにもったいない・・・ということで、コードサイニングを取得しました。
元号変更・改元の時には、短期間のあいだにダウンロードトラブル事例が多発することが必至です。
もしかすると新年号の発表の頃に、Windowsやセキュリティソフトはダウンロードプログラムの未署名のものを実行させないのでは???という妄想も思い浮かんだので、とりあえず今のうちに取得しておこう!と思いついたわけであります。
思いついたのは5月14日で取得できたのは5月18日ですから、意外に早く取得できました。
(実際には、お金を払う・・・ということだけがすべての、まったく理不尽なシステムですね。これ。今まで申請しなかった理由です。)
これは、最初は慣れてないとちょっとヤヤコっしい。。。。
その備忘録です。(これは開発者向けの記事です。)
まず種類ですが、「コードサイニング証明書」と「EVコードサイニング証明書」がありまして、Windows10で無条件に警告を出なくする「EV」の方は、ちょっと金額が高く(65,000円~)、勿体なかったので、、、、
また、
EVはWindows専用
EVじゃない方はWindows,AdobeAirも可
、、、とのことで、今回はまずは「コードサイニング証明書」を申請してみました。
(EV有無のWindowsでの実際の違いが申請時にはイマイチわからなかったのですが、、、今はわかります。
EVが無いと、結局、下記のメッセージが出ます。トホホですね。
(「詳細情報」をクリックすると「実行」ボタンが表示されるのでインストールできます。)


↑↑↑↑↑↑
※EVコードを取得すると上記のメッセージが出ないようになるとのこと。余裕ができたら申請してみます(泣)
(1)申請先の選定→→→→ COMODO
何がなんやらわかりませんので、とりあえず価格重視でコモド社に。
コード証明書は21,000円+消費税でした。他社で倍くらい高いところもあるんですが、何が違うのかまだわかっていません。
(2)必要なもの→→→→ D・U・N・S Number(ダンズナンバー?)
まず東京商工リサーチのサイトでD-U-N-S Numberを検索。
うちは今まで信用調査系会社を必要とする会社様とはあまり付き合いをしておりませんので、たぶんダンズナンバーなんてないやろね~~と検索してみたら、案の定ありませんでした(笑)
プレミアサービスで申請してしまいました。19,440円
今回のトータル費用合計:40,440円  ちょっと痛いです。
翌年度からも毎年更新??う~む。
5月18日朝、無事、コードサイニングはメールで連絡が来ましたが、、、、思いついてから5日で取得できたということです。
お金を先に振り込めば、もっと早く取得できます。私「後から請求書が届く」ものと、申込をしてからしばらく放置してました。入金してからホンマに動いてくれるようですね。)

ここからが備忘録の本題です。

朝にメールで届いて、お昼ぐらいまでスッタモンダです。半日潰れました。
重要:申請したパソコンでやること!IEでやること!
社内の数台でそれぞれ署名できるようにするために、「pfx」ファイルを書き出し使うんですが、必ず「IE」でやること!(ほかのブラウザでは×)
https://knowledge.symantec.com/jp/support/class2-support/index?page=content&actp=CROSSLINK&id=SO23796
pfxファイルをわかりすいところに保存しておきましょう。(社内にはpfxファイルを配布しておく)
実際の署名
今から思えば、以下の方法がいいかと、、、、、マニュアルには書いていなかったので。
(1)コンピュータ内の「検索」で signtool と検索

(2)cmdプロンプトを起動して、そのフォルダに移動
※私のPCの場合は
C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Bin
にありましたので
「cd C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Bin」
これをメモ帳にコピーしておく。
※実は、C:\Program Files (x86)\Windows Kits\10\bin\x64 にもあったんですが、EVじゃないからたぶん古いのだろうと、とりあえずv7.1Aの方で。
ユーザー様が32ビットPCで実行したらどうなるのかわかりませんし。。
(また次回、時間があるときに、おいおい調べてみます。)
※signtoolがなかったら、SDKよりWindowsのSDKをダウンロード・インストール
↑↑↑↑
今までに.NETの開発で使ったことがあるPCだったらたぶんどこかにあるのでは?
https://www.microsoft.com/en-us/download/details.aspx?id=8279
(4)コマンドプロンプトを起動して、さきほどの(2)「cd C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Bin」(私の場合)を貼り付け、
次に
「signtool.exe sign /fd sha256 /f <pfxファイル名> /p <pfxパスワード> /t http://timestamp.comodoca.com/authenticode /v <署名するファイル>」
↑↑↑↑
最近は視力が落ちたので、これもメモ帳に書いて、でコマンドプロンプトに貼り付け!です。
昔なら、直接キーボード叩いた方が早かった・・・。

ExePressで作ったEXEファイルの署名に注意Exepressなどで作成したファイルにサインして、ファイルのプロパティ見て「おっ!名前が出た」っと喜んで、よ~し、と、今までにアップしたファイルを根こそぎサインしてサーバーにアップしたんですが、、、
いざダウンロードして実行すると、警告どころではなく、実行すらできなくなります。最初に試すべきでした。

結局、サイン前のものをアップし直しました。(なので、今でも未署名のものがアップされています。次回のアップデートの分から署名していくことにします。署名しなおす時間がもったいないので、、、)
気づくのがまだ早かったんでよかったんですが、もし気づいてなかったら翌朝は「ダウンロードしたけど実行できないよ!」というクレーム電話で起こされていたでしょう。
これは、Exepressのプロ版を使って、EXEファイルを作成する時に、あらかじめ「正当性のチェック」のところで
http://www.webtech.co.jp/help/ja/exepress6/windows_exepress/config/startup/#check
デジタル署名(Authenticode)をチェックをけて作成したファイルでないと、サインしても意味がない(・・・というか、起動しなくなるので)ということです。

↑↑↑
ExePressで作ったExeファイルには著名処理することを忘れずに!←←これが一番の備忘録かも(ExEpressを使っていない方にはあまり意味のない記事でしたね。)

話は変わりますが、早く次の年号だけでも発表して欲しい・・・。