自从WinXP以来我一直没有使用Windows DDK(现在的WDK),并且我注意到一些大的变化。Win7 64bit传统nt4驱动程序签署问题
我正在开发一个传统NT4过滤驱动程序(不.inf和不.cat)与最新的Win7 DDK,我的环境是
Windows 7 64bit
Visual Studio 2010
WinDDK v7600.16385.1
VisualDDK plugin for VS (latest version)
我有问题自签署该驱动程序,因为我还在发展我没有(也不知道如何获得)适当的WHQL证书,因此我正在执行我在网上找到的一个程序。
@echo off
set SIGNTOOL="c:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\signtool.exe"
set MAKECERT="c:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\makecert.exe"
set PVK2PFX="c:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\pvk2pfx.exe"
set CERTPVK="C:\Users\myself\Desktop\testdriver\avtxagent\package\mycompanynametest.pvk"
set CERTPFX="C:\Users\myself\Desktop\testdriver\avtxagent\package\mycompanynametest.pfx"
set CERT="C:\Users\myself\Desktop\testdriver\avtxagent\package\mycompanynametest.cer"
set DRIVER="C:\Users\myself\Desktop\testdriver\avtxagent\package\avtxagent.sys"
set CERTSUBJ="mycompanyname (test)"
del *.cer *.pfx *.pvk
cls
%MAKECERT% -r -n "CN=mycompanyname (test)" -sv %CERTPVK% %CERT%
%PVK2PFX% -pvk %CERTPVK% -spc %CERT% -pfx %CERTPFX%
pause
cls
%SIGNTOOL% sign /v /f %CERTPFX% /t "http://timestamp.verisign.com/scripts/timestamp.dll" %DRIVER%
pause
cls
:: verification
%SIGNTOOL% verify /pa /v %DRIVER%
pause
基本上我做的是生成证书每次(我已经有一个证书试图产生只有一次,还是同样的问题),我的签名驱动程序,然后试图验证签名。 在这最后一步,验证,我得到的问题:
SignTool Error: A certificate chain processed, but terminated in a
root certificate which is not trusted by the trust provider.
显然,当我尝试安装,然后启动旧的驱动程序以编程方式,并与SC,我得到的错误:
[SC] CreateService SUCCESS
[SC] StartService FAILED 577:
Windows cannot verify the digital signature for this file. A recent hardware or software change might have installed a file that is signed incorrectly or damaged, or that might be malicious software from an unknown source.
如果我遵循本指南http://technet.microsoft.com/en-us/library/cc754841.aspx并将证书导入Trusted Certification内部,验证过程将顺利进行,但我会从sc获得相同的错误。
我在做什么错?而且,有没有人可以解释我为了在生产环境中使用适当的证书需要做些什么,因为文档有点缺乏?