有关尝试使用SHA1 / SHA256进行双重签名时失败的问题。
我已经有几年的SHA256代码签名证书,但在新的一年(2016年)之前,我开始使用/ fd SHA256进行散列算法,以符合微软的弃用SHA1。
这很好用,但当然签名哈希在旧操作系统上没有验证。我并不关心XP,但我仍然非常关心Vista。
我首先使用以下内容签署SHA1:
signtool sign /fd SHA1 /f "cert.pfx" /p "password" /t http://timestamp.verisign.com/scripts/timsetamp.dll "file"
然后我尝试我的双重签名:
signtool sign /as /fd SHA256 /f "cert.pfx" /p "password" /tr http://timestamp.globalsign.com/?signature=sha2 "file"
而signtool给了我这个:
Done Adding Additional Store
SignTool Error: An unexpected internal error has occurred.
Error information: "Error: SignerSign() failed." (-2147024846/0x80070032)
现在我可以使用单一算法(SHA1或SHA256)成功签名文件,但我无法添加第二个签名。我唯一的猜测是,因为我对这两种算法都使用了SAME证书,所以并不是这样。我是否需要为每种算法使用不同的物理证书?
只是想知道,因为在新的一年之前,我使用SHA1算法多年来一直使用SHA256证书,并且它在所有操作系统上都经过验证。
答案 0 :(得分:1)
这是来自错误匹配的dll。 signtool.exe需要正确的wintrust.dll和mssign32.dll,否则只有在双重签名时才会得到0x80070032。 该网站有8.1下载,因此您不需要整个SDK http://ksoftware.freshdesk.com/support/solutions/articles/17170-how-do-i-use-ksign-to-digitally-sign-files- signtool 8.1在 http://cdn1.ksoftware.net/signtool_8.1.zip