Signtool: 自Windows 10更新1803以来:未找到符合所有给定条件的证书。

4
我正在使用signtool对我的C#程序集进行签名。在Windows 10 1803更新之前,一切都很顺利。但是自从重新启动计算机或者甚至是挂起计算机后,我就会收到错误消息:没有找到符合所有给定标准的证书。
如果我再次导入证书,那么在下一次重新启动之前,一切都能正常工作...
我试图将证书导入到Windows证书存储的不同文件夹中,我为当前用户或计算机导入了它,并在重新导入之前从所有文件夹中删除它,但问题始终如此。
有任何提示吗?

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

5
这里有个提示。使用/debug选项运行signtool。当我在命令提示符中手动运行它时,如果我没有以管理员身份运行命令提示符,则会出现相同的错误(未找到证书)。使用/debug选项,您将看到它匹配的所有证书以及如何过滤选择要签名的证书。我的证书在最后一步(私钥过滤器)被删除。如果这也是您的情况,请尝试以提升的权限运行并查看是否有效。
在我的情况下,由于1803更新后VSTS构建代理Windows服务未运行,我必须手动启动代理。这就是为什么我会遇到那个错误。一旦我意识到服务已停止并启动了服务,错误就消失了。

实际上,我回到了我的问题,因为问题在周末突然消失了,即使没有安装任何更新。但我会记住这个/debug选项! - Markus

0

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接