我已经从证书服务器为自己颁发了代码签名证书。我还从同一证书服务器为自己颁发了根证书。 根证书存在于受信任的根证书颁发机构文件夹中的当前用户和本地计算机证书存储中。我已经使用 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
为什么会这样?我认为在 Trusted Root Certification Authorities 文件夹中拥有根证书会验证 DLL。
最佳答案
在您的验证命令中添加/pa 选项以告诉它使用默认身份验证验证策略而不是 Windows 驱动程序验证策略,这意味着它将查看您的证书存储而不是 Microsoft 信任驱动程序的有限 CA 集.
在此处查看更多选项: http://msdn.microsoft.com/en-us/library/8s9b9yaz(v=vs.90).aspx
关于c# - 为什么我的根证书不受信任?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11230091/