30

証明書サーバーからコード署名証明書を発行しました。また、同じ証明書サーバーからルート証明書を発行しました。ルート証明書は、信頼されたルート証明機関フォルダー内の現在のユーザーとローカルコンピューターの両方の証明書ストアに存在します。signtool.exeウィザードを使用してDLLに正常に署名しました。

"C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bin\signtool.exe" signwizard <MyDLLName>.dll

ただし、DLLを検証しようとすると、検証に失敗し、次のエラーが発生します。

"C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bin\signtool.exe" verify <MyDLLName>.dll
SignTool Error: A certificate chain processed, but terminated in a root certificate which is not trusted by the trust provider.
SignTool Error: File not valid: <MyDLLName>.dll

なぜこうなった?信頼されたルート証明機関フォルダーにルート証明書があると、DLLが検証されると思いました。

4

1 に答える 1

62

検証コマンドで/paオプションを追加して、Windowsドライバー検証ポリシーの代わりにデフォルトの認証検証ポリシーを使用するように指示します。これは、Microsoftがドライバーと信頼する限定されたCAのセットではなく、証明書ストアを参照することを意味します。

その他のオプションについては、こちらをご覧ください:http: //msdn.microsoft.com/en-us/library/8s9b9yaz (v=vs.90).aspx

于 2012-06-27T18:12:10.727 に答える