Windows在安全更新后认为已签名的安装程序是恶意软件(KB3124605)

2年前@Dejan Maksimovic问了一个关于Internet Explorer显示有效证书为“损坏或无效签名”的问题 。 迄今为止,我遇到需要提升权限的安装程序的可比较的问题。

这个问题似乎是相同的,但是对于KB3124605 。

安装程序使用signtool进行签名,证书有效期至2016年8月。

当我安装包含此修补程序的累积更新时,Windows SmartScreen告诉我发行者是未知的,但是当我卸载安全更新时,Windows似乎能够区分发行者(实际上在证书信息中提到的发行者)。

更新于1月12日发布。 任何人都有同样的问题?

运行SignTool verify /pa <My Installer.exe>返回Successfully verified: <My Installer.exe>

SHA2签名不能被Windows 7之前的操作系统识别,所以如果你也是这样的,那么你需要执行双重签名 。

微软解释双重签署的步骤 ,更多细节。

在最终收到一个新的代码签名证书后,我可以用SHA256签名签署我的安装程序。 在这里输入图像说明

我不得不把/fd sha256添加到signtool

 SignTool.exe sign \ /f "$CERTIFICATE" \ /p $PFX_PASSWORD \ /fd sha256 \ /t http://timestamp.verisign.com/scripts/timestamp.dll" \ /d "Name" \ /du "http://my.website.com/" \ "<My installer>" 

不幸的是,我仍然遇到了Smartscreen的警告(但是很明显这是一个Windows 8 +功能 )。 好消息是出版商不再是未知的。

仍然尝试Windows应用程序验证的Windows 8,8.1和服务器2012年(Windows 10 在这里 )从这篇文章

编辑:(看@博格丹评论)

对于双重签名执行以下步骤(将不适用于msi ,只适用于exe

 SignTool.exe sign /f "$CERTIFICATE" /p $PFX_PASSWORD /t http://timestamp.verisign.com/scripts/timestamp.dll" /d "Name" /du "http://my.website.com/" /v "<My installer>.exe" SignTool.exe sign /f "$CERTIFICATE" /p $PFX_PASSWORD /fd sha256 /tr http://timestamp.verisign.com/scripts/timestamp.dll" /d "Name" /du "http://my.website.com/" /as /v "<My installer>.exe"