c# - 为什么我的根证书不受信任?

标签 c# dll certificate code-signing signtool

我已经从证书服务器为自己颁发了代码签名证书。我还从同一证书服务器为自己颁发了根证书。 根证书存在于受信任的根证书颁发机构文件夹中的当前用户和本地计算机证书存储中。我已经使用 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/

相关文章:

windows - 适用于x64的SQLite3.dll

vba - “找不到文件 : VBA6. dll”错误 - 奇怪的行为

linux - PUPPET - linux 域机器证书错误

c# - C# 中不兼容的匿名函数签名?

c# - Azure Functions 的每个环境配置?

c# - typeof 和 is 在比较对象类型时有什么区别?

c# - GetAwaiter()。GetResult()和.Result都不对我有用,但是Task.Run(await()=> nameOfMethodTobeCalled())。Result可以工作。我听不懂

ssl - 将 .cer 转换为 .pem 返回错误 'unable to load certificate'

encryption - 由于 .PFILE 扩展名,无法打开传输到另一台 PC 的 Windows 10 加密文件

c# - SynchronizationContext 和 ASP.NET Web API 扩展点