我有两个代码签名证书(一个SHA-1,一个SHA-256),我想将它们应用于同一个文件。我尝试添加SHA-256证书,但这样做失败了:
:: Signs with the SHA-1 certificate
signtool sign /sha1 8f52fa9db30525dfabb35b08bd1966693a30eccf /t http://timestamp.verisign.com/scripts/timestamp.dll my_app_here.exe
:: Signs with the SHA-2 certificate
signtool sign /sha1 8b0026ecbe5bf245993b26e164f02e1313579e47 /as /t http://timestamp.verisign.com/scripts/timestamp.dll my_app_here.exe
这会导致错误:
Done Adding Additional Store
SignTool Error: SignedCode::Sign returned error: 0x80070057
The parameter is incorrect.
SignTool Error: An error occurred while attempting to sign: my_app_here.exe
如果我从第二个命令中删除时间戳URL,签名将成功完成,但SHA-2签名将没有时间戳。(无论是否在第一个签名上打时间戳都没有影响)
这里的意图是允许某人在支持此类功能的操作系统上使用更强的证书验证应用程序,但要避免在不支持更强证书(Vista、XP)的操作系统上失败验证。
这种事情可能吗?
/td sha256 /tr ...
而不是第二个签名的/t ...
吗? - Thomas Weller