自從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獲得相同的錯誤。
我在做什麼錯?而且,有沒有人可以解釋我爲了在生產環境中使用適當的證書需要做些什麼,因爲文檔有點缺乏?
剛剛導入的.cer文件到受信任的根證書頒發機構的分支並沒有什麼改變。 –
根據我讀過的內容,您的系統充當CA.必須信任CA才能使其生成的證書可信。您必須找到一種將您的計算機添加爲自己的可信CA的方法。 –
與.pfx文件的驗證進行得很順利,但我從sc得到相同的錯誤 –