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"