|
1: 2021-09-07 (火) 09:00:28 yuji |
| + | * デバイスドライバーに自己署名する [#y20fb8a0] |
| + | デジタル署名が無いデバイスドライバーは,Windows 10などでは通常インストール出来なくなっている。~ |
| | | |
| + | 古いデバイスドライバーなどのデジタル署名がないデバイスドライバーをWindows 10にインストールして使用できるようにするには, |
| + | - デジタル署名を無視してインストールできるテストモードでWindows 10を再起動する~ |
| + | [[Windows10で署名のないデバイスドライバを入れる>/PC/Windows/Windows10で署名のないデバイスドライバを入れる]]で説明している方法でインストールする。~ |
| + | しかし手順が結構めんどうではある。~ |
| + | - デバイスドライバーに自己署名する~ |
| + | これは本来認証機関で行う承認した上でのデジタル署名を,自分で勝手にしてしまう方法。~ |
| + | この時,Windowsマシンに自己証明書が信頼されているように登録する必要がある。 |
| + | |
| + | のどちらかで,インストールすることが出来る。 |
| + | |
| + | ここでは,デバイスドライバーに自己署名してインストール出来るようにする手順を説明する。~ |
| + | |
| + | ** 自己証明書を作成する [#z67e8743] |
| + | 管理者権限で[[Windows Driver Kit>https://docs.microsoft.com/ja-jp/windows-hardware/drivers/download-the-wdk]]が動作するコマンドプロンプトを立ち上げる。~ |
| + | |
| + | デバイスドライバーのcatファイルのデジタル署名の際に使用する証明書を作成する。~ |
| + | > makecert -r -pe -n "CN=hogehoge CA" -ss "hogehogeStore" xxxxxxxx.cer |
| + | として,証明書を作成する。~ |
| + | CNは発行先名で-ssはディレクトリ名なので,適当に指定して自己証明書を作成する。~ |
| + | |
| + | ** 自己証明書のWindowsマシンへの登録 [#m16020bc] |
| + | デバイスドライバー署名するために使用する自己証明書を作成し,それをWindowsマシンに登録する。 |
| + | |
| + | *** 自己証明書を登録する [#kd1373b8] |
| + | Windowsマシンへ,以下のようにして自己証明書を登録する。~ |
| + | 管理者権限で[[Windows Driver Kit>https://docs.microsoft.com/ja-jp/windows-hardware/drivers/download-the-wdk]]が動作するコマンドプロンプトを立ち上げる。~ |
| + | |
| + | まず,デバイスドライバーのcatファイルの署名の際に使用する証明書を勝手に作成する。~ |
| + | > makecert -r -pe -ss my -n "CN=hogehoge CA" -ss "hogehogeStore" xxxxxxxx.cer |
| + | として,証明書を作成する。~ |
| + | CNは発行先名でssはディレクトリ名になるので,これらを適当に指定して自己証明書を作成する。~ |
| + | |
| + | *** 自己証明書をWindowsマシンに登録する [#ea0a4de2] |
| + | Windowsマシンへ自己証明書を認証機関で信頼されたように登録する。~ |
| + | |
| + | Windowsマシンに自己証明書を登録して,その登録した証明書を認証機関で証明したように信頼された証明書として設定する。~ |
| + | > certmgr -add xxxxxxxx.cer -s -r localMachine root |
| + | > certmgr -add xxxxxxxxe.cer -s -r localMachine trustedpublisher |
| + | または |
| + | > certutil -addstore ROOT xxxxxxxx.cer |
| + | > certutil -addstore TrustedPublisher xxxxxxxx.cer |
| + | |
| + | これで,作成した自己証明書が使用できるようになる。 |
| + | |
| + | ** デバイスドライバーのinfファイルからcatファイルを作成する [#v9e84533] |
| + | まず,デバイスドライバーのinfファイルにcatファイル情報を追加する。~ |
| + | infファイルを編集し,[Version]のところの最後のラインに, |
| + | CatalogFile=xxxxxxxx.cat |
| + | と,catファイルの定義を追加する。~ |
| + | |
| + | 次にデバイスドライバーのinfファイルから,未署名のcatファイルを作成する。~ |
| + | このとき,/os:オプションで対象のテストするOSを指定する。カンマ区切りで複数の指定が出来る。inf2catをオプション無しで実行すると,使用できるOSリストが表示される。~ |
| + | > inf2cat /driver:infファイルが有るディレクトリ /os:10_X64,10_19H1_X64,... |
| + | |
| + | これで,xxxxxxxx.catファイルが作成される。~ |
| + | |
| + | ** デバイスドライバーのcatファイルに自己署名を追加する [#u4099817] |
| + | 上記で作成した自己証明書を使用して,デバイスドライバーのcatファイルにデジタル署名を追加する。~ |
| + | このとき,自己証明書を作成した時の発行先名とディレクトリ名を,-nと-sで指定する。~ |
| + | > signtool sign -v -n "hogehoge CA" -s hogehogeStore xxxxxxxx.cat |
| + | |
| + | これで,デバイスドライバーのcatファイルに自己証明書でデジタル署名が出来た。 |
| + | |
| + | * デバイスドライバーをインストールする [#f4e445ed] |
| + | デバイスドライバーに自己署名が出来たら,デバイスをPCに接続してデバイスマネージャーを開く。~ |
| + | プラグ&プレイ(自動)でデバイスドライバーがインストール出来なかったデバイスに?が表示されているので,上記で作成したデバイスドライバーのディレクトリをしてインストールする。 |