しまてく

学んだ技術を書きためるブログ

CAB作成からデジタル署名を付けるまでの自動化

仕事用にまとめたやつだけど自分用にも投稿しちゃうよ!


デジタル署名をする際に「秘密のパスワードの入力」ダイアログを出さないための方法。

サイレントで行うためにpfxファイルを使用しないといけないのがミソらしい。

1)CABファイルの作成

    例
        cabarc.exe -m LZX:21 -s 6144 N \new.cab \fol\*.*
パラメータ&オプション
    -m LZX:21
        圧縮形式の指定
    -s 6144
        デジタル署名に使用する領域を空けておくための指定
    N new_cabfile.cab some_files
        new_cabfile.cabは新しく作成するCABファイル、some_filesはCABに圧縮するファイル(ワイルドカード指定ができる)

2)pfxファイルの作成

    例
        pvk2pfx.exe -pvk example.pvk -spc example.spc -pfx example.pfx -pi password1 -po password2 -f
パラメータ&オプション
    -pvk pvkfilename.pvk
        pfxファイルの作成に使用するpvkファイルを指定
    -spc spcfilename.ext
        Software Publisher Certificate (SPC)ファイルの指定
        拡張子は「.spc」または「.cer」
    -pfx pfxfilename.pfx
        新しく作成するpfxファイルを指定
    -pi pvkpassword
        pvkファイルのパスワードを指定
    -po pfxpassword
        pfxファイルに設定するパスワードを指定(pvkのパスワードと同じはセキュリティ的に良くない)
    -f
        既に同名のpfxファイルがある場合に上書きをするためのフラグ(基本的に指定しとけばOK)

3)pfxファイルを用いてcabファイルにデジタル署名

    例
        signtool.exe sign /f example.pfx /p password2 /v new_cabfile.cab /t http://timestamp.verisign.com/scripts/timstamp.dll
パラメータ&オプション
    sign
        sign コマンド
        /f example.pfx
            署名に使用するpfxファイルを指定
        /p password2
            /f で指定したpfxファイルのパスワード

    /v
        成功した実行、失敗した実行、および警告メッセージの詳細出力。

    new_cabfile.cab
        デジタル署名をするCABファイル

    /t
        タイムスタンプ(通常は例のアドレスを指定していればOK)