窗口 – signtool未能双重标记具有时间戳的SHA2和SHA1

前端之家收集整理的这篇文章主要介绍了窗口 – signtool未能双重标记具有时间戳的SHA2和SHA1前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我们需要使用signtool.exe与SHA1和SHA2双重签名我们的二进制文件,我们的证书支持256位SHA2。

使用Windows 8 SDK的signtool:

例如。:

signtool.exe签署/ as / fd sha256 / t http://timestamp.verisign.com/scripts/timstamp.dll / f“certificate.pfx”/ p XXXXXXX“file.dll”

(XXXXXXX是我们的证书密码)

失败与隐秘的错误

SignTool错误:SignedCode :: Sign返回错误:0x80070057
参数不正确
SignTool错误:尝试签名时发生错误:file.dll

签名没有时间戳工作,单独签名SHA1或SHA256工作,但我们需要双重标志,并想象没有时间戳是一个否。

我尝试了32位和64位版本的signtool.exe,在Win7和Win8机器上尝试过,并尝试使用命令行选项播放,但无济于事。有没有人打过这个问题?

我一直在试图做这个确切的事情,并发现以下是诀窍。此方法依赖于使用两个Authenticode证书,一个用于SHA-1,另一个用于SHA-256,以确保文件被Windows Vista和Windows Server 2008接受为不受SHA-256证书签名的Windows Server 2008即使使用SHA-1算法:
signtool.exe sign /sha1 SHA1_Thumprint /v /d "FileDescription" /du "CompanyURL" /fd sha1 /tr http://timestamp.comodoca.com/rfc3161 /td sha1 "FileName.dll"
signtool.exe sign /sha1 SHA256_Thumprint /as /v /d "FileDescription" /du "CompanyURL" /fd sha256 /tr http://timestamp.comodoca.com/rfc3161 /td sha256 "FileName.dll"

请注意,使用/ sha1开关为每个签名步骤显式指定SHA-1指纹,并且/用作附加SHA-256签名的SHA-1指纹。否则SHA-256签名将覆盖SHA-1签名。

在这个过程中发现的另一个问题是只有DLL和EXE支持重签名。 MSI安装程序没有。

29/12/15更新:

SHA-1 / SHA-256指纹的格式是一个40个字符的十六进制大写字母,没有空格。例如:

signtool.exe sign /sha1 0123456789ABCDEF0123456789ABCDEF01234567 /as /v /d "FileDescription" /du "CompanyURL" /fd sha256 /tr http://timestamp.comodoca.com/rfc3161 /td sha256 "FileName.dll"

30/12/2015更新

要使用SHA-256证书签名具有SHA-1哈希的MSI文件,请使用类似以下命令:

signtool.exe sign /sha1 SHA256_Thumprint /v /d "FileDescription" /du "CompanyURL" /t http://timestamp.comodoca.com/authenticode "FileName.msi"

猜你在找的Windows相关文章