4

我不清楚在我的具体情况下应该如何签署司机。

OpenVPN 有一个 Tap 驱动程序,它由 tap0901.sys、tap0901.cat 和 OemWin2k.inf 文件组成。

当我在我的 64 位 win7 上使用“devcon install OemWin2k.inf tap0901”安装它时,它会静默安装,没有可怕的警告。

我将驱动程序重命名为不同的名称 ogtap100(通过将文件重命名为 ogtap100.sys、ogtap100.cat 并将 OemWin2k.inf 中的“tap0901”字符串替换为“ogtap100”,根据http://community.openvpn.net/openvpn /wiki/ManagingWindowsTAPDrivers和 OemWin2k.inf 中的注释)。

但是,当我在重命名的驱动程序上运行“devcon install OemWin2k.info ogtap100”时,我收到来自 Windows 的可怕警告,即驱动程序来自未知来源。它会安装,但我计划将它作为我的应用程序的一部分发布,所以可怕的警告并不好。

当我运行“signtool verify /v ogtap100.cat”时,我得到:“SignTool 错误:已处理证书链,但在信任提供者不信任的根证书中终止。” 即使它还说根证书是“颁发给:DigiCert High Assurance EV Root CA”。

我尝试使用自己的证书(在签署常规 .exe 文件时有效)重新签名(signtool sign /f cert.pfx ogtap100.cat),但我得到了同样可怕的警告。

我错过了什么?

会不会…… 与目录(.cat)文件有关吗?

我已经阅读了http://msdn.microsoft.com/en-us/windows/hardware/gg463050但它假设我会自己生成 .cat 文件。我已经有来自 OpenVPN 的 .cat 文件。重命名文件和 OewmWin2k.inf 后是否必须重新生成它?如果是,如何?

4

2 回答 2

0

1)您是否确保您获得了高保证数字证书?他们发布的标准并不适用于司机。更改很简单... https://www.digicert.com/code-signing/driver-signing-in-windows-using-signtool.htm

2) 如果您下载 Windows 7 DDK 并稍微“阅读意图和代码”而不是仅仅按照说明进行操作,您可以成功构建自己的驱动程序(cat 和 sys 文件),并正确重命名和签名。 https://community.openvpn.net/openvpn/wiki/BuildingTapWindows

查看生成的 OemWin2k.inf 以获得一些重命名的强烈提示。注意:时间戳需要正确,并且是(荒谬的)mm/dd/yyyy 格式。

3) 至于警告信息,至少您可以让它正确显示您的公司名称,并且 Windows 将接受(而不是禁用)正确签名的驱动程序。

于 2015-05-19T14:15:59.643 回答
0

有关驱动程序签名的详细信息,请查看 https://social.msdn.microsoft.com/Forums/windowsdesktop/en-US/0b00c9d4-dff9-4fbe-b741-768c9b39349c/practical-windows-code-and-driver-signing-讨论?论坛=wdk

这是指向一些参考文档的摘要。从 inf 生成 .cat 文件很简单。

查看语法和操作顺序。我也在使用 Digicert 证书。确保您有一张用于驱动程序签名的证书,并注意确保交叉证书正确无误。

构建脚本使用 inf2cat 方法,因此如果您遵循整个说明(并在设置中搜索 inf 未告诉您的内容...查找常量),那么您正在生成 .cat 文件。

对于我的安装,我认为应该在生成 .cat 并对其进行签名之前对 .sys 文件进行签名。

另外,请确保您的电脑具有所有 Windows 更新。这实际上确实可以“修复”具有相同错误签名的电脑。(它没有验证交叉证书所需的证书,它会自动下载。)

于 2015-06-11T18:58:29.300 回答