LoginSignup
34
33

More than 5 years have passed since last update.

exeを署名してみた。

Last updated at Posted at 2014-05-16

ナレッジベース - コードサイニング証明書 サポート

わかったこと

  • exeを署名することは、「このexeは自分が作りました」ということ。
    信頼できる機関から有効期限付きの証明書を発行してもらい、exeにくっつける。
    exeのプロパティで確認できます。

  • 有効期限が切れていてもexeの実行できます。(PCの年月日を変更して確認した。)

  • exeを実行するとき、未署名のときより実行開始されるまで時間がかかります。
    (証明書の確認のため?)

署名の準備

コードサイニング証明書は手続きを完了すると、

  1. IEの個人証明書欄に登録される
  2. 証明書を秘密鍵とともにエクスポート(この時のパスワードは後で使うのでひかえておく)
  3. エクスポートは拡張子PFXのものになる。このままだとsigntool.exeで使えないので、

秘密鍵を取り出す(PFX->pem->pvk)

PFX->pem
openssl.exe pkcs12 -in cert.pfx -nocerts -nodes -out cert.pem
# 証明書エクスポート時のパスワード入力
pem->pvk
pvk.exe -in cert.pem -topvk -out cert.pvk
# pvkのパスワードを任意に設定。

サーバ証明書を取り出す(PFX->pem->spc)

PFX->pem
openssl pkcs12 -in cert.pfx -nokeys -out cert.pem
pem->spc
openssl crl2pkcs7 -nocrl -certfile cert.pem -outform DER -out cert.spc

署名ツールをインストール

Microsoft Windows SDK for Windows 7 and .NET Framework 4をインストールしてsigntool.exeを使えるようにする。

Download Platform SDK Redistributable : CAPICOM from Official Microsoft Download Centerも必要かも。

signtool.exeを実行してcapicom.dllが無いと言われたら、以下コマンドでレジストリに登録

regsvr32 "C:\Program Files\Microsoft CAPICOM 2.1.0.2 SDK\Lib\X86\capicom.dll"

署名実施

cabに署名
signtool.exe sign /f cert.pfx /p "pfxのパスワード" hoge.cab
exeに署名
signtool.exe sign /f cert.pfx /p "pfxのパスワード" hoge.exe
34
33
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
34
33