【问题标题】:Signtool: Since Windows 10 Update 1803: No certificates were found that met all the given criteriaSigntool:自 Windows 10 更新 1803 以来:未找到满足所有给定条件的证书
【发布时间】:2018-11-17 06:57:01
【问题描述】:

我正在使用 signtool 对我的 c# 程序集进行签名。在 Windows 10 1803 更新之前一切正常。现在,只要重新启动计算机,甚至在暂停计算机后,我都会收到错误消息:未找到符合所有给定条件的证书。

如果我再次导入证书,一切正常,直到下次重新启动...

我尝试将证书导入到 Windows 证书存储的不同文件夹中,我为当前用户或计算机导入了它,我在重新导入之前在所有文件夹中删除了它...但问题总是一样的。

任何提示都会很棒!

【问题讨论】:

  • 在 1803 更新后,我在构建服务器上遇到了类似的问题。它开始与您的类似,出现“未找到证书...”错误。当我开始调查时,问题突然消失了(我没有做任何可以解决它的事情)。但是现在,signtool 偶尔会失败。我们的一个构建有大约 30 多个 dll,每个 dll 都经过签名,signtool 失败,随机组件出现“内部错误”。仍在寻找解决方案。
  • @pvenky - 只是一个想法 - 如果您并行构建,这可能会导致问题。我将所有 TFS 构建切换为不并行构建,这解决了我的所有随机构建问题。
  • 我没有并行构建,我仍然看到零星的失败。它总是失败并显示以下消息:EXEC : error information: "Error: SignerSign() failed." (-1073700864/0xc000a000) 但每次都在不同的项目上失败。

标签: signtool


【解决方案1】:

这里有一个提示。使用/debug 选项运行signtool。当我从命令提示符手动运行它时,如果我没有以管理员身份运行命令提示符,我会收到相同的错误(未找到证书)。使用/debug 选项,您将看到它匹配的所有证书以及它如何过滤以选择要签名的证书。我的证书在最后一步被淘汰(私钥过滤器)。如果您遇到这种情况,请尝试使用提升的权限运行,看看是否可行。

在我的情况下,出于某种原因,运行构建的 VSTS 构建代理 Windows 服务在 1803 更新后没有运行,我手动启动了代理。这就是我收到该错误的原因。一旦我意识到服务已关闭并将其作为服务启动,错误就消失了。

【讨论】:

  • 实际上我回到了我的问题,因为这个问题在周末突然消失了。即使没有安装任何更新。但我会记住这个 /debug 选项!
【解决方案2】:

我必须使用证书管理器 MMC 为构建服务器的计算机帐户授予证书私钥的权限

【讨论】:

    猜你喜欢
    • 2014-03-29
    • 2021-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-12
    相关资源
    最近更新 更多