web-dev-qa-db-ja.com

ルート証明書が信頼されないのはなぜですか?

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

"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

なぜこうなった? Trusted Root Certification Authoritiesフォルダーにルート証明書があると、DLLが検証されると思いました。

27
Alexandru

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

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

54
Kevin Green