我的二进制文件使用有效的SHA-2证书(Authenticode和timestamp)签名,但Windows 10上的SmartScreen仍会阻止它,而Edge报告“此文件的签名已损坏或无效”。
我已经检查了其他来自热门资源的二进制文件,比如Firefox。他们仍然使用SHA1时间戳证书签名,但Windows不会报告任何问题。有人可以建议发生了什么吗?
链接到我的二进制文件: https://dl.dropboxusercontent.com/u/21463705/Stackoverflow/Win32Project1.exe
答案 0 :(得分:4)
我们的安装人员遇到了同样的问题。即使我只使用SHA-2证书进行SHA-2签名,Edge仍然会将签名报告为无效。
我们使用相同的代码签名授权,“VeriSign Class 3 Code Signing 2010 CA”,它本身使用SHA-1签名进行签名:
这似乎是SmartScreen的“此文件的签名已损坏或无效”错误消息的原因。
我联系了赛门铁克(他们现在运行VeriSign),他们为我们颁发了替换证书。与前一个版本不同,该版本由“Symantec Class 3 SHA256 Code Signing CA”签署,并且签名的可执行文件不再触发SmartScreen中的“签名损坏或无效”错误。
我仍然收到警告,因为我们的安装人员还没有足够的声誉,但这是一个完全不同的问题。
答案 1 :(得分:0)
我遇到了同样的问题,并且还没有解决问题。我认为其他二进制文件与SHA1签署的原因是因为它们是在2016年1月1日之前签署的。我们收到的关键服务公告指出:
以前使用SHA-1证书签名的文件将继续在Windows 7及更高版本上运行一年,只要它们在2016年1月1日之前加上时间戳。
进一步说,
从2017年1月1日开始,所有SHA-1签名文件将在Windows 7及更高版本上被阻止,无论它们何时加上时间戳。