Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
31
Help us understand the problem. What is going on with this article?
@tukiyo3

exeを署名してみた。

More than 5 years have passed since last update.

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

わかったこと

  • 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
31
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
tukiyo3
最近はC#とBusyBox好き

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
31
Help us understand the problem. What is going on with this article?