1

会社のワークステーションにプリインストールされている医療機器用の USB ドライバを入手しようとしています。残念ながら、これらのドライバーは署名されていません。ここや他の場所で行われたいくつかの調査に基づいて、作成した証明書を使用してこれらのドライバーに自己署名しました。

makecert -r -pe -n "CN=Self Root CA" -b 01/01/2006 -e 01/01/2099 -eku 1.3.6.1.5.5.7.3.3,1.3.6.1.4.1.311.10.3.6 -sv selfcert.pvk selfcert.cer

「信頼されたルート CA」と「信頼された発行元 CA」に証明書を追加し、ドライバーに署名しました。

signtool sign /f selfcert.pfx /p password /uw /t http://timestamp.verisign.com/scripts/timstamp.dll /v C:\gendex\fusiondexis.cat

「Windows System Component Verification」(1.3.6.1.4.1.311.10.3.6) と「Code Signing」(1.3.6.1.5.5.7.3.3) が証明書に存在するため、「/uw」パラメーターを追加しました。適切に思えました。

次に、signtool を使用して署名を検証しました。

signtool.exe verify /pa /v /c C:\gendex\fusiondexis.cat C:\gendex\fusiondexis.inf

ドライバー ファイルは「C:\gendex」にコピーされ、レジストリ キー「DevicePath」を更新して、ドライバー ファイルの検索時にこのパスが含まれるようにしました。ただし、デバイスをプラグインすると、Windows に新しいハードウェアの追加ウィザードが表示され、管理者は資格情報を入力する必要があります。そうしないと、デバイスは認識されない状態のままになり、そうしないと正常に動作します。

私は一日中これを理解しようとして頭を叩いていました。どんな助けでも大歓迎です!ありがとう。

4

1 に答える 1

1

selfcert.cerユーザー固有のストアではなく、ローカル マシン ストアに (セルフ ルート CA) を追加したことを確認してください。使用できます

CertMgr.exe -add -c selfcert.cer -s -r localMachine AuthRoot

私は約 8 年前に私の顧客の 1 人のソリューションを作成しましたが、まだ機能しています。当時、/uw スイッチのない古いバージョンの SignTool を使用していました。ちょうど使った

SignTool.exe signwizard /v LXT52Xxp.cat

トラブルシューティングのために、詳細な SetupAPI ログを設定することをお勧めします (ここここを参照)。どのディレクトリからどのドライブが取得されるか、およびドライバーのランキングが「Microsoft 署名済み」と同じように解釈されるかどうかが表示されます。

于 2013-05-17T15:10:33.737 に答える