« Windows 7をボリュームライセンスで買ってみた(予定地) | メイン | Apache httpdのコンパイル リバイバル »

ドライバにオレオレ署名をする (汎用的かつ難解な解説)

必要なもの

  • 署名したいドライバ
  • Windows SDK
  • コマンドプロンプトの扱い方とか

手順

  1. Windows SDKのコマンドプロンプトを起動する
  2. オレオレルート証明書を作る(パスワードは秘密鍵のパスフレーズのことなので、入力しなくてもよい)。

    makecert -sv "[秘密鍵ファイル].pvk" -a sha1 -eku 1.3.6.1.5.5.7.3.3 -r -ss Root -len [暗号鍵の長さ] -sr localMachine -n "CN=[署名者の名前]" "[X.509 証明書ファイル].cer"

  3. 証明書の形式を変換する(pvk2pfxがX.509証明書を受け付ないみたい)。

    cert2spc [X.509 証明書ファイル].cer [PKCS #7 証明書ファイル].spc

  4. 証明書と秘密鍵を結合しPKCS #12 証明書ファイルとして保存。

    pvk2pfx -pvk [秘密鍵ファイル].pvk [-pi 秘密鍵のパスフレーズ] -spc [PKCS #7 証明書ファイル].spc -pfx [PKCS #12 証明書ファイル].pfx [-po PKCS #12 証明書のパスフレーズ]

  5. 署名する。

    signtool sign /f [PKCS #12 証明書ファイル].pfx [/p PKCS #12 証明書のパスフレーズ] /d "[署名したいドライバの名前]" /v [署名したいドライババイナリ]

ここでできる証明書はOpenSSLで作成したようなBASE64エンコードされたやつではなくて、バイナリファイル。たぶんOpenSSLのやつ(もちろんコード署名用のやつ)も使えると思うけど確認していない。

署名したドライバの扱い

たぶんテストモードじゃないと動かないと思うので、bcdedit -set TESTSIGNING ONをコマンドプロンプトに放りこめば幸せになれるかもしれない。

ネタ元

64bit版Windows 7でPT1 - ハインヒートブログ

Yahoo!ブログ - 別館PCチラシの裏日記

Windows7でテレビ(その2): Exhaust gas

Windows 7 RC x64 でQRS-UT100Bを使う HaioH:変遷備忘録

Newsletter #76:  Solving Windows "driver is not signed" problems

About

2010年2月27日 20:23に投稿されたエントリーのページです。

ひとつ前の投稿は「Windows 7をボリュームライセンスで買ってみた(予定地)」です。

次の投稿は「Apache httpdのコンパイル リバイバル」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

このサイトは、S.A Studioの中の人の備忘録です。別名をまとめサイトといいます。

このサイトに記載されている事象・事項などはすべて各エントリの更新時点での情報に基づいています。最新情報が反映されていない場合がありますので、利用前に各種情報源で最新情報を得ることをおすすめします。

このサイトに記載されている事象・事項などについて、筆者は内容の保証をしておりません。利用の際には十分お気をつけください。