VisualStudioを入れずに自己署名環境を作る

Windows Mobileのカスタマイズで鬼門になりやすい自己署名ですが、VisualStudioのインストールが必要であったり、紹介されているツールが古く、そのままではうまくいかないなど、とても敷居の高いものになっています。なんちゃってモバイラーとしては、ネットに繋がっていて自由に使えるPCがあれば「いつでもどこでも」署名がつけられるのが理想ですので、自己署名環境の簡単構築法を記録しておきます。以下の通りです。

ここを参考に、PSDK-x86.exeを実行してPlatformSDKのうち、Mircosoft Cryptography Tools以外は最小になるようにインストールします。CAPICOM.DLL以外の必要なファイルは、C:\Program Files\Microsoft Platform SDK\Binにあると思います。CAPICOM.DLLが無い場合は、ここからダウンロードできます。あと、自己署名証明書のcabを作るのに、makecab.exeが必要になりますが、大抵どこかに入っています。道具が揃ったところで、下準備開始です。コマンドラインから以下を実行します。foo…やhogehoge…は適当に変更してください。mc.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 fooCA.pvk -r -n "CN=foo" fooCA.cer
cert2spc fooCA.cer fooCA.spc
pvk2pfx -pvk fooCA.pvk -spc fooCA.spc -po hogegepasswd -pfx fooCA.pfx -f

ここまでで、下準備は完了です。ここから証明書cabの作成に入ります。出来上がった、fooCA.cerをエクスプローラーから開きます。

  • 詳細タブの拇印をコピーして空白を取り除いたものを「拇印」とします。
  • 詳細タブの「ファイルにコピー」ボタンから、証明書を「Base 64 encoded X.509」形式でエクスポートします。
  • エクスポートしたファイルの2行目から12行目を「証明書」とします。

ここから、証明書cabの作成です。

<wap-provisioningdoc>
<characteristic type="CertificateStore"><characteristic type="Privileged Execution Trust Authorities">
<characteristic type="拇印">
<parm name="EncodedCertificate" value="証明書" />
</characteristic></characteristic></characteristic>
<characteristic type="CertificateStore"><characteristic type="SPC">
<characteristic type="拇印">
<parm name="EncodedCertificate" value="証明書" />
<parm name="Role" value="222" /></characteristic></characteristic>
</characteristic></wap-provisioningdoc>

上の、「拇印」、「証明書」の部分をそれぞれ前段で作成したものに置き換えて、ファイル名「_setup.xml」として保存します。

makecab _setup.xml foo_cert.cab

これで、証明書cabの完成です。実行ファイルへの署名は

signtool sign /f fooCA.pfx /p hogegepasswd 実行ファイル名

という感じです。たったこれだけ。

コメントを残す