自己署名環境の作成方法

NAVITIMEなどごにょごにょするのに必要となり調べた自己署名環境の作成方法を覚え書き。
<必要なツール>
1.自己署名環境作成ツール
MakeCert.exe
Cert2Spc.exe
Signtool.exe
Pvk2pfx.exe
Capicom.dll


2.Cabファイル作成用ツール
makecab.exe
Cabwiz.exe
cabwiz.ddf


自己署名環境作成ツールはWindows Platform SDK(PSDK-x86.exe)をインストールすると次の保存場所にそれぞれ必要なファイル

があるのでコピーして使用する。


ツール入手先:
http://www.microsoft.com/downloads/details.aspx?familyid=A55B6B43-E24F-4EA3-A93E-40C0EC4F68E5&displaylang=en


インストール方法:
http://www.feel-good-web.com/Tutorial/tutorial_step3.html
Microsoft Cryptography Tools以外はできるだけインストールしない最小のインストール方法として、「Microsoft Windows Core

SDK」の「Tools(Intel 64-bit)」と「Redistributable Components」だけを選択する。


ファイルの保存場所:
PSDK-x86.exeをC:\Program Files\Microsoft Platform SDKを指定してインストールした場合
MakeCert.exe (C:\Program Files\Microsoft Platform SDK\Bin)
Cert2Spc.exe (C:\Program Files\Microsoft Platform SDK\Bin)
Signtool.exe (C:\Program Files\Microsoft Platform SDK\Bin)
Pvk2pfx.exe (C:\Program Files\Microsoft Platform SDK\Bin)
Capicom.dll (C:\Program Files\Microsoft Platform SDK\redist\CAPICOM\x86


<署名と秘密キーの作成>
(1)makeCert.exeを使い署名と秘密キーを作成する。
コマンドプロンプトで次のコマンドを入力して作成する。


・makecert -a sha1 -b 01/01/2003 -e 12/31/2099 -cy authority -eku 1.3.6.1.5.5.7.3.3 -sv Dark_Sign.pvk -r -n

"CN=Dark_Sign" Dark_Sign.cer


作成されるファイルは次の二つ。
Dark_Sign.Cer = 署名(Certificate)
Dark_Sign.pvk = 秘密キー


(2)cert2spc.exeを使用してDark_Sign.spcを作成する。


・cert2spc Dark_Sign.cer Dark_Sign.spc


(3)pvk2pfx.exeを使用してDark_Sign.pfxを作成する。
Dark_Sign.pfxは signtool.exeを使用して署名する際の認証Valueを作る際に必要となる。なお、ここではパスワード

は"Dark_Sign"としておく。


これら①から③の手順を簡略化するためDark_Sign.batを作成する。
テキストエディタで下記コマンドを入力してDark_Sign.batとして保存する。


・makecert -a sha1 -b 01/01/2003 -e 12/31/2099 -cy authority -eku  1.3.6.1.5.5.7.3.3 -sv Dark_Sign.pvk -r -n

"CN=Dark_Sign" Dark_Sign.cer
・cert2spc Dark_Sign.cer Dark_Sign.spc
・pvk2pfx -pvk Dark_Sign.pvk -spc Dark_Sign.spc -po Dark_Sign -pfx Dark_Sign.pfx -f


作成したDark_Sign.batをダブルクリックするとコマンドプロンプトが立ち上がりプログラムが動き出しパスワードの入力を求めて

くるので先に記載したパスワードを入力する。


<証明書cabの作成>
(1)Dark_Sign.cerをダブルクリックで開く。(テキストエディタで開くのではない)
(2)詳細タブの拇印をコピーして空白を取り除いたものをメモ帳を開き貼り付け「拇印.txt」とする。
(3)詳細タブの「ファイルにコピー」ボタンから、証明書を「Base 64 encoded X.509」形式でエクスポートする。
(4)エクスポートしたファイルの1行目と最終行を除く行を「証明書」とする。
ここからが証明書cabの作成
(5)下記の「拇印」、「証明書」の部分をそれぞれ前段で作成したものに置き換えて、ファイル名「_setup.xml」として保存する。












(6)Dark_Sign_cert.cabという名前で証明書Cabを作成する。
コマンドラインで次のコマンドを入力する。
makecab _setup.xml Dark_Sign_cert.cab


これで証明書cabの完成。


<実行ファイルへの自己署名>
コマンドラインで次のコマンドを入力する。
signtool sign /f Dark_Sign.pfx /p Dark_Sign 実行ファイル名(〜.exeなど)


<デバイスへの証明書Cabインストール>
バイスでDark_Sign_cert.cabを実行する。
これで自己署名をつけた実行ファイルが使用できるようになる。

(参考)
http://asukal.seesaa.net/article/15481746.html
http://geocities.yahoo.co.jp/gl/hou_ming_2/view/200604
http://d.hatena.ne.jp/chai99/2