2016-12-05 69 views
0

我们的双签名软件不安装在较旧的Windows 7操作系统版本上。如何变老窗口7操作系统安装双签名文件

安装错误为: Windows无法验证此设备所需的驱动程序的数字签名。最近的硬件或软件更改可能安装了签名不正确或损坏的文件,或者可能是未知来源的恶意软件。 (代码52)

我们的代码签名证书最近更新为SHA256。

我的研究发现我不得不对双重签名进行签名,以便在不支持SHA-256的较早版本的Windows上验证签名。

感谢本网站的贡献者,我能够修改现有构建脚本的所有组件,以成功实现双重签名二进制文件。

它们使用SHA-256证书的安全更新安装在多个Windows 10操作系统版本和Windows 7中。 他们不安装在没有更新的Windows 7操作系统。

我们的构建机器是32位的Win 7,所以我用signtool.exe x86版本从8.1的Windows套件附带的VS 2015年,其版本为6.3.9600.17298

我发现相互矛盾的信息关于Windows 7和它能够安装双重签名的CAT文件。

因此,我正在寻找一种方法来获取所有版本的Windows 7和10上安装的代码,而不管它们的Windows更新状态如何。 (有些客户并没有定期更新操作系统,并希望保持这种状态)

更新:我能够让我们的应用程序和驱动程序安装到较旧的Windows 7操作系统版本。原来代码签名证书未正确设置以允许双重签名。

我不得不重新颁发证书作为SHA256和SHA1根进行代码签名。

+0

更新的答案是?如果是这样,你可以在下面提供它,而不是编辑你的问题 –

回答

0

在上周的测试设置成功后,我们对我们的整个软件套件(包括USB设备驱动程序)进行了官方构建。 我们测试软件在以下机器上安装和运行:

32位Windows 7终极版6.1.7601 Service Pack 1个的构建7601

64位Windows 7专业版6.1.7601 Service Pack 1个的构建7601 原创ISO版本,没有操作系统更新

64位Windows 7专业版6.1.7601 Service Pack 1次的构建7601次 OS的更新,包括为KB3033929的兼容性SHA256

64位Windows 7家庭普通版6.1.7 601 Service Pack 1的构建7601

64位Windows 10 Pro版本10.0.10586建设10586

64位Windows 10 Home版本1607(OS构建14393.10)

64位Windows 10 Pro的内幕预览版1607 (OS Build 14971。1000)

所有这些测试都产生了成功的应用程序和驱动程序安装。

因此,答案是更改生成机器上安装的代码签名证书的类型。

该证书必须安装为带有SHA1 root的SHA256。 CertMgr显示2个单独的证书,其中一个使用hash = SHA1,另一个使用hash = SHA256。

然后修改脚本以创建双重签名。首先调用signtool创建SHA1标志,第二次调用signtool追加SHA2标志。 (注:只有Windows SDK 8.1和更高版本支持双重签名。)

相关问题