我公司购买了驱动程序签名证书从去爸爸。 我用它来签一个简单的INF文件是一些使用微软的usbser.sys我们的USB设备的驱动程序。 一切似乎都在Windows 7 64位计算机上工作,我签了:如果我在INF文件上右键单击,选择“安装”,然后第二个警告,我看这是有益的警告,显示正确的发布者名称:
但是,如果我去到不同的计算机(Windows Vista 64位),右键单击INF文件,然后选择“安装”,然后我得到这个错误消息,而不是:
这让我觉得,我的驱动程序没有正确签名,看起来很不错的唯一原因,我的电脑上是因为我在去爸爸的安装过程中安装一些根/中间/交叉证书。 我肯定希望我的用户能够看到,我们是经过验证的出版商,而无需在他们的计算机上手动安装证书。
INF文件,并在同一目录.cat文件。
有谁知道为什么发生这种情况,我该如何解决?
我怀疑的主要问题是,当我运行我得到这个错误signtool verify /v pololu.cat
(更多详情如下),我也没有想通了为什么:
SignTool错误:证书链进行处理,但在其中不被信任提供商所信任的根证书终止。
我的程序的详细信息
驱动程序签名证书是从去爸爸一个新的产品,他们在几个星期前推出。 我不能完全确定它是如何从签名证书的编号不同,但相同的价格。 我也跟着上的Go Daddy的网站上的说明下载并安装证书 ,虽然说明不完全匹配的现实。 我在步骤1中安装了Microsoft交叉证书后,我看到了一个红色警告消息,说:
在可以安装证书,则必须使用Windows Update更新您的根证书或手动下载并安装我们的资源库根证书。
我不知道该怎么做了一番。 我没有安装从他们的仓库一些GoDaddy的根证书,但它并没有明显的区别。
我安装了最新版本(8.0) 的Windows驱动程序工具包(WDK) ,然后安装最新版本(8.0) 为Windows 8的Windows软件开发工具包(SDK) 。 这使我获得了inf2cat
和signtool
工具。 这两个试剂盒进行了最后的一个月内公布,因此有可能有可能是由于我们踩在一些新的错误。
在一个新的目录,我把三个文件:
-
pololu_usb_to_serial.inf
,INF文件我要签名。 它很长,但简单; 你可以在这里阅读 。 这个INF文件是一个独立的驱动器; 没有其他文件都需要我们的驱动程序包。 这个文件基本上是一样的,我们的公司已经成功地分布(未签名)版本多年,但我不得不做出一些改变了Inf2Cat接受它。 -
mscvr-cross-gdroot-g2.crt
,这是我从下载的Go Daddy证书库 。 我相信这是交叉证书是证明“去爸爸根证书颁发机构 - G2”是由微软可信的,但我不能完全确定这是否是使用权证书。 -
sign_it.bat
,批处理文件我运行来进行数字签名。
该批处理文件只包含:
"C:\Program Files (x86)\Windows Kits\8.0\bin\x86\inf2cat" /v /driver:%~dp0 /os:XP_X86,Vista_X86,Vista_X64,7_X86,7_X64,8_X86,8_X64
"C:\Program Files (x86)\Windows Kits\8.0\bin\x86\signtool" sign /v /ac "mscvr-cross-gdroot-g2.crt" /n "Pololu Corporation" /t http://tsa.starfieldtech.com pololu.cat
第一个命令调用inf2cat
从Windows驱动程序工具包。 该/v
选项使得冗长。 该/driver:%~dp0
选项它指向包含批处理文件的目录; 一.
没有出于某种原因,这是不必硬编码的完整路径更好。 该/os
选项指定所有的操作系统,我想用该驱动程序软件包支持。 此命令创建pololu.cat
。
第二个命令调用signtool
从Windows软件开发工具包签署编录文件。 该/v
选项使得冗长。 的/ac
选项指定交叉证书使用(见上文#2)。 该/n
选项指定使用(该证书是根据安装在我的计算机上的证书的名称certmgr.msc
)。 该/t
选项指定的Go Daddy的时间戳服务器的URL。
这里是当我运行该批处理文件中的命令提示符的输出:
C:\Users\david.POLOLU\Desktop\sign_it>"C:\Program Files (x86)\Windows Kits\8.0\b
in\x86\inf2cat" /v /driver:C:\Users\david.POLOLU\Desktop\sign_it\ /os:XP_X86,Vis
ta_X86,Vista_X64,7_X86,7_X64,8_X86,8_X64
Processing directory (C:\Users\david.POLOLU\Desktop\sign_it\) file (mscvr-cross-
gdroot-g2.crt)
Processing directory (C:\Users\david.POLOLU\Desktop\sign_it\) file (pololu_usb_t
o_serial.inf)
Processing directory (C:\Users\david.POLOLU\Desktop\sign_it\) file (sign_it.bat)
Parsing INF: C:\Users\david.POLOLU\Desktop\sign_it\pololu_usb_to_serial.inf
Finished parsing INFs
Processing INF: C:\Users\david.POLOLU\Desktop\sign_it\pololu_usb_to_serial.inf
Finished processing INFs
Testing driver package...
Testing driver package...
Testing driver package...
Testing driver package...
Testing driver package...
Testing driver package...
Testing driver package...
Testing driver package...
Testing driver package...
Testing driver package...
Testing driver package...
Testing driver package...
Testing driver package...
Testing driver package...
Testing driver package...
Signability test complete.
Errors:
None
Warnings:
None
Catalog generation complete.
C:\Users\david.POLOLU\Desktop\sign_it\pololu.cat
C:\Users\david.POLOLU\Desktop\sign_it>"C:\Program Files (x86)\Windows Kits\8.0\b
in\x86\signtool" sign /v /ac "mscvr-cross-gdroot-g2.crt" /n "Pololu Corporation"
/t http://tsa.starfieldtech.com pololu.cat
The following certificate was selected:
Issued to: Pololu Corporation
Issued by: Go Daddy Secure Certificate Authority - G2
Expires: Sat Aug 31 11:35:25 2013
SHA1 hash: E2FE1275AD8DA85DEABA67ADE26BE42E0834B4C0
Cross certificate chain (using machine store):
Issued to: Microsoft Code Verification Root
Issued by: Microsoft Code Verification Root
Expires: Sat Nov 01 06:54:03 2025
SHA1 hash: 8FBE4D070EF8AB1BCCAF2A9D5CCAE7282A2C66B3
Issued to: Go Daddy Root Certificate Authority - G2
Issued by: Microsoft Code Verification Root
Expires: Thu Apr 15 13:07:40 2021
SHA1 hash: 842C5CB34B73BBC5ED8564BDEDA786967D7B42EF
Issued to: Go Daddy Secure Certificate Authority - G2
Issued by: Go Daddy Root Certificate Authority - G2
Expires: Sat May 03 00:00:00 2031
SHA1 hash: 27AC9369FAF25207BB2627CEFACCBE4EF9C319B8
Issued to: Pololu Corporation
Issued by: Go Daddy Secure Certificate Authority - G2
Expires: Sat Aug 31 11:35:25 2013
SHA1 hash: E2FE1275AD8DA85DEABA67ADE26BE42E0834B4C0
Done Adding Additional Store
Successfully signed: pololu.cat
Number of files successfully Signed: 1
Number of warnings: 0
Number of errors: 0
正如我所说的,我保持的.cat和.inf在同一目录文件一起,但他们只被我签了字在电脑上正常工作。
验证与Signtool
该signtool
从微软工具也有一个“检查”功能,让你验证,如果你的签名是正确的。 有验证时,您可以使用三种不同的政策,以及它们各自有不同的结果:
- Windows驱动程序验证策略说我的签名链不追溯微软和打印有关我的根是如何不受信任的错误消息。 这似乎是一个问题给我。
- 默认验证码验证策略 (
/pa
)也说我的签名链不追溯微软,但它并没有给出一个错误。 - 内核模式驱动程序签名策略 (
/kp
,这可能是不适用的,因为我不签署内核模式驱动程序)说我的签名链不追溯微软,并给出任何错误。
有谁知道哪个策略用于Windows的INF文件? 这将至少可以帮我缩小问题。
这里是满的,从输出的详细signtool verify
:
C:\Users\david.POLOLU\Desktop\sign_it>"C:\Program Files (x86)\Windows Kits\8.0\b
in\x86\signtool" verify /v pololu.cat
Verifying: pololu.cat
Signature Index: 0 (Primary Signature)
Hash of file (sha1): 09A611ECC83E61646DB967D4C23EED725B903C1B
Signing Certificate Chain:
Issued to: Go Daddy Root Certificate Authority - G2
Issued by: Go Daddy Root Certificate Authority - G2
Expires: Thu Dec 31 16:59:59 2037
SHA1 hash: 47BEABC922EAE80E78783462A79F45C254FDE68B
Issued to: Go Daddy Secure Certificate Authority - G2
Issued by: Go Daddy Root Certificate Authority - G2
Expires: Sat May 03 00:00:00 2031
SHA1 hash: 27AC9369FAF25207BB2627CEFACCBE4EF9C319B8
Issued to: Pololu Corporation
Issued by: Go Daddy Secure Certificate Authority - G2
Expires: Sat Aug 31 11:35:25 2013
SHA1 hash: E2FE1275AD8DA85DEABA67ADE26BE42E0834B4C0
The signature is timestamped: Wed Sep 05 16:22:34 2012
Timestamp Verified by:
Issued to: Starfield Services Root Certificate Authority
Issued by: Starfield Services Root Certificate Authority
Expires: Mon Dec 31 16:59:59 2029
SHA1 hash: 5D003860F002ED829DEAA41868F788186D62127F
Issued to: Starfield Services Timestamp Authority
Issued by: Starfield Services Root Certificate Authority
Expires: Wed Apr 26 00:00:00 2017
SHA1 hash: AEAC793CDD107ACFB314A2FE384A8F16840B7C26
SignTool Error: A certificate chain processed, but terminated in a root
certificate which is not trusted by the trust provider.
Number of files successfully Verified: 0
Number of warnings: 0
Number of errors: 1
C:\Users\david.POLOLU\Desktop\sign_it>"C:\Program Files (x86)\Windows Kits\8.0\b
in\x86\signtool" verify /v /pa pololu.cat
Verifying: pololu.cat
Signature Index: 0 (Primary Signature)
Hash of file (sha1): 09A611ECC83E61646DB967D4C23EED725B903C1B
Signing Certificate Chain:
Issued to: Go Daddy Root Certificate Authority - G2
Issued by: Go Daddy Root Certificate Authority - G2
Expires: Thu Dec 31 16:59:59 2037
SHA1 hash: 47BEABC922EAE80E78783462A79F45C254FDE68B
Issued to: Go Daddy Secure Certificate Authority - G2
Issued by: Go Daddy Root Certificate Authority - G2
Expires: Sat May 03 00:00:00 2031
SHA1 hash: 27AC9369FAF25207BB2627CEFACCBE4EF9C319B8
Issued to: Pololu Corporation
Issued by: Go Daddy Secure Certificate Authority - G2
Expires: Sat Aug 31 11:35:25 2013
SHA1 hash: E2FE1275AD8DA85DEABA67ADE26BE42E0834B4C0
The signature is timestamped: Wed Sep 05 16:22:34 2012
Timestamp Verified by:
Issued to: Starfield Services Root Certificate Authority
Issued by: Starfield Services Root Certificate Authority
Expires: Mon Dec 31 16:59:59 2029
SHA1 hash: 5D003860F002ED829DEAA41868F788186D62127F
Issued to: Starfield Services Timestamp Authority
Issued by: Starfield Services Root Certificate Authority
Expires: Wed Apr 26 00:00:00 2017
SHA1 hash: AEAC793CDD107ACFB314A2FE384A8F16840B7C26
Successfully verified: pololu.cat
Number of files successfully Verified: 1
Number of warnings: 0
Number of errors: 0
C:\Users\david.POLOLU\Desktop\sign_it>"C:\Program Files (x86)\Windows Kits\8.0\b
in\x86\signtool" verify /v /kp pololu.cat
Verifying: pololu.cat
Signature Index: 0 (Primary Signature)
Hash of file (sha1): 09A611ECC83E61646DB967D4C23EED725B903C1B
Signing Certificate Chain:
Issued to: Go Daddy Root Certificate Authority - G2
Issued by: Go Daddy Root Certificate Authority - G2
Expires: Thu Dec 31 16:59:59 2037
SHA1 hash: 47BEABC922EAE80E78783462A79F45C254FDE68B
Issued to: Go Daddy Secure Certificate Authority - G2
Issued by: Go Daddy Root Certificate Authority - G2
Expires: Sat May 03 00:00:00 2031
SHA1 hash: 27AC9369FAF25207BB2627CEFACCBE4EF9C319B8
Issued to: Pololu Corporation
Issued by: Go Daddy Secure Certificate Authority - G2
Expires: Sat Aug 31 11:35:25 2013
SHA1 hash: E2FE1275AD8DA85DEABA67ADE26BE42E0834B4C0
The signature is timestamped: Wed Sep 05 16:22:34 2012
Timestamp Verified by:
Issued to: Starfield Services Root Certificate Authority
Issued by: Starfield Services Root Certificate Authority
Expires: Mon Dec 31 16:59:59 2029
SHA1 hash: 5D003860F002ED829DEAA41868F788186D62127F
Issued to: Starfield Services Timestamp Authority
Issued by: Starfield Services Root Certificate Authority
Expires: Wed Apr 26 00:00:00 2017
SHA1 hash: AEAC793CDD107ACFB314A2FE384A8F16840B7C26
Cross Certificate Chain:
Issued to: Microsoft Code Verification Root
Issued by: Microsoft Code Verification Root
Expires: Sat Nov 01 06:54:03 2025
SHA1 hash: 8FBE4D070EF8AB1BCCAF2A9D5CCAE7282A2C66B3
Issued to: Go Daddy Root Certificate Authority - G2
Issued by: Microsoft Code Verification Root
Expires: Thu Apr 15 13:07:40 2021
SHA1 hash: 842C5CB34B73BBC5ED8564BDEDA786967D7B42EF
Issued to: Go Daddy Secure Certificate Authority - G2
Issued by: Go Daddy Root Certificate Authority - G2
Expires: Sat May 03 00:00:00 2031
SHA1 hash: 27AC9369FAF25207BB2627CEFACCBE4EF9C319B8
Issued to: Pololu Corporation
Issued by: Go Daddy Secure Certificate Authority - G2
Expires: Sat Aug 31 11:35:25 2013
SHA1 hash: E2FE1275AD8DA85DEABA67ADE26BE42E0834B4C0
Successfully verified: pololu.cat
Number of files successfully Verified: 1
Number of warnings: 0
Number of errors: 0
输出看起来都一样时,我签订的驱动程序(在那里工作)的计算机上运行,并在其他计算机上(如果它不工作)。
在计算器上类似的问题
对于64位Windows Thawte的驱动程序签名 -解决这个家伙的问题是一个CatalogFile指令添加到INF文件,但我已经有了。 ( CatalogFile=pololu.cat
)。
编辑#1:签名可执行作品
我用signtool那些相同的选项签署一个可执行文件(NSIS安装),它工作正常的第一次尝试,在两台计算机上。 所以我认为这是为INF驱动程序文件讲讲签名策略不同,这就是被拧我。
编辑#2:警告在GoDaddy的证书
如果我双击mscvr-cross-gdroot-g2.crt
,在常规选项卡它说:“Windows没有足够的信息来验证这个证书。” 在证书路径选项卡,在“证书状态”,它说:“这个证书的颁发者无法找到。” 我还看到那些相同的警告,如果我双击gd_ms_drv_sign_bundle.p7b
(从GoDaddy的证书捆绑),并打通第一个证书。
这两个证书的颁发者应该是微软代码验证根。 我应该担心的警告消息?
编辑#3:删除GoDaddy的证书
林赛从GoDaddy的高级支持团队回来给我。 她挂此页到从GlobalSign这也解释了你怎么也得从CA卸载根和中间证书可以注册的驱动程序在计算机上。 林赛说,如果你不做到这一步,签名工具将假定这些证书是目前在其他计算机上,因此不包括在他们的签名。
有谁知道如何检查什么证书“进口”到签名? 我可以使用哪些工具来看看Lindsay和GlobalSign的是正确的?
顺便说一句,我们必须围绕Windows XP的电脑,但微软很快将停止支持该操作系统。 尽管什么GlobalSign的说,有一定是一种方法,使在Windows 7这项工作。
根据林赛的建议,我也跟着从微软的说明关闭自动根证书更新 ,然后我用的UI certmgr.msc
来删除“受信任的根证书颁发机构”和“中级证书颁发机构”的所有GoDaddy的证书。 然后我重新签我的inf文件。
不幸的是,没有工作! 签约后,我仔细检查了所有的GoDaddy的证书还是删除。
我已经收到的输出从没有GoDaddy的反馈signtool verify
,或在其驱动程序签名策略做验证时,我应该检查所有输入。 我希望他们能够只看验证输出,并告诉我,我做错了,或者告诉我会是什么样正确的输出等。
为了完整起见,这里有来自三个输出signtool verify
之后我删除这些证书并重新签署了驱动程序:
C:\Users\david.POLOLU\Desktop\sign_inf>"C:\Program Files (x86)\Windows Kits\8.0\
bin\x86\signtool.exe" verify /v pololu.cat
Verifying: pololu.cat
Signature Index: 0 (Primary Signature)
Hash of file (sha1): 5AE4F370471009C8B0ED936C9AE19ED14ABD67D7
Signing Certificate Chain:
Issued to: Go Daddy Root Certificate Authority - G2
Issued by: Microsoft Code Verification Root
Expires: Thu Apr 15 13:07:40 2021
SHA1 hash: 842C5CB34B73BBC5ED8564BDEDA786967D7B42EF
Issued to: Go Daddy Secure Certificate Authority - G2
Issued by: Go Daddy Root Certificate Authority - G2
Expires: Sat May 03 00:00:00 2031
SHA1 hash: 27AC9369FAF25207BB2627CEFACCBE4EF9C319B8
Issued to: Pololu Corporation
Issued by: Go Daddy Secure Certificate Authority - G2
Expires: Sat Aug 31 11:35:25 2013
SHA1 hash: E2FE1275AD8DA85DEABA67ADE26BE42E0834B4C0
The signature is timestamped: Wed Sep 12 14:52:19 2012
Timestamp Verified by:
Issued to: Starfield Services Root Certificate Authority
Issued by: Starfield Services Root Certificate Authority
Expires: Mon Dec 31 16:59:59 2029
SHA1 hash: 5D003860F002ED829DEAA41868F788186D62127F
Issued to: Starfield Services Timestamp Authority
Issued by: Starfield Services Root Certificate Authority
Expires: Wed Apr 26 00:00:00 2017
SHA1 hash: AEAC793CDD107ACFB314A2FE384A8F16840B7C26
SignTool Error: A certificate chain processed, but terminated in a root
certificate which is not trusted by the trust provider.
Number of files successfully Verified: 0
Number of warnings: 0
Number of errors: 1
C:\Users\david.POLOLU\Desktop\sign_inf>"C:\Program Files (x86)\Windows Kits\8.0\
bin\x86\signtool.exe" verify /v /pa pololu.cat
Verifying: pololu.cat
Signature Index: 0 (Primary Signature)
Hash of file (sha1): 5AE4F370471009C8B0ED936C9AE19ED14ABD67D7
Signing Certificate Chain:
Issued to: Go Daddy Root Certificate Authority - G2
Issued by: Microsoft Code Verification Root
Expires: Thu Apr 15 13:07:40 2021
SHA1 hash: 842C5CB34B73BBC5ED8564BDEDA786967D7B42EF
Issued to: Go Daddy Secure Certificate Authority - G2
Issued by: Go Daddy Root Certificate Authority - G2
Expires: Sat May 03 00:00:00 2031
SHA1 hash: 27AC9369FAF25207BB2627CEFACCBE4EF9C319B8
Issued to: Pololu Corporation
Issued by: Go Daddy Secure Certificate Authority - G2
Expires: Sat Aug 31 11:35:25 2013
SHA1 hash: E2FE1275AD8DA85DEABA67ADE26BE42E0834B4C0
The signature is timestamped: Wed Sep 12 14:52:19 2012
Timestamp Verified by:
Issued to: Starfield Services Root Certificate Authority
Issued by: Starfield Services Root Certificate Authority
Expires: Mon Dec 31 16:59:59 2029
SHA1 hash: 5D003860F002ED829DEAA41868F788186D62127F
Issued to: Starfield Services Timestamp Authority
Issued by: Starfield Services Root Certificate Authority
Expires: Wed Apr 26 00:00:00 2017
SHA1 hash: AEAC793CDD107ACFB314A2FE384A8F16840B7C26
SignTool Error: WinVerifyTrust returned error: 0x800B010A
A certificate chain could not be built to a trusted root authority.
Number of files successfully Verified: 0
Number of warnings: 0
Number of errors: 1
C:\Users\david.POLOLU\Desktop\sign_inf>"C:\Program Files (x86)\Windows Kits\8.0\
bin\x86\signtool.exe" verify /v /kp pololu.cat
Verifying: pololu.cat
Signature Index: 0 (Primary Signature)
Hash of file (sha1): 5AE4F370471009C8B0ED936C9AE19ED14ABD67D7
Signing Certificate Chain:
Issued to: Go Daddy Root Certificate Authority - G2
Issued by: Microsoft Code Verification Root
Expires: Thu Apr 15 13:07:40 2021
SHA1 hash: 842C5CB34B73BBC5ED8564BDEDA786967D7B42EF
Issued to: Go Daddy Secure Certificate Authority - G2
Issued by: Go Daddy Root Certificate Authority - G2
Expires: Sat May 03 00:00:00 2031
SHA1 hash: 27AC9369FAF25207BB2627CEFACCBE4EF9C319B8
Issued to: Pololu Corporation
Issued by: Go Daddy Secure Certificate Authority - G2
Expires: Sat Aug 31 11:35:25 2013
SHA1 hash: E2FE1275AD8DA85DEABA67ADE26BE42E0834B4C0
The signature is timestamped: Wed Sep 12 14:52:19 2012
Timestamp Verified by:
Issued to: Starfield Services Root Certificate Authority
Issued by: Starfield Services Root Certificate Authority
Expires: Mon Dec 31 16:59:59 2029
SHA1 hash: 5D003860F002ED829DEAA41868F788186D62127F
Issued to: Starfield Services Timestamp Authority
Issued by: Starfield Services Root Certificate Authority
Expires: Wed Apr 26 00:00:00 2017
SHA1 hash: AEAC793CDD107ACFB314A2FE384A8F16840B7C26
SignTool Error: WinVerifyTrust returned error: 0x800B010A
A certificate chain could not be built to a trusted root authority.
Number of files successfully Verified: 0
Number of warnings: 0
Number of errors: 1
编辑#4:DefaultInstall部分是一个禁忌
在该DefaultInstall部分的文档从微软,我发现了这一点:
注意驱动程序包的INF文件不能包含一个INF DefaultInstall部分,如果驱动程序包进行数字签名。
没有人知道为什么会是真的吗? 我找不到一个解释。
无论如何,我拿出我的INF文件的DefaultInstall部分,所以从现在开始我必须通过运行一个小DLL我写的,调用测试它SetupCopyOemInf 。
仍然没有运气; 我不断获得Windows Vista计算机上未经验证的发布者警告。
编辑#5:JLINK驱动程序是否正确签署
我是用C闲逛:\ WINDOWS \ SYSTEM32 \ DriverStore \ FileRepository文件,试图找到一些正确签名的驱动程序包。 第一个有趣的一个,我发现是JLinkCDC.cat/JLinkCDC.inf。 INF文件的版本是DriverVer=01/25/2012,6.0.2600.4
。 在Windows Vista的机器,如果我叫SetupCopyOemInf的INF文件(用我的DLL),然后我得到一个正确的消息告诉我的发布者是谁(套件含有Segger GMBH或类似的东西)。 因此,可以适当地签署驱动程序包像我这样的,但不知何故,GoDaddy或我做错了什么。
该JLinkCDC.inf驱动程序是非常相似,我的司机,因为它只是一个文件,并使用usbser.sys。 他们的签名的信任链追溯到威瑞信3级公用主证书颁发机构 - G5。
基本上,这JLinkCDC驱动程序是类似地雷和它的作品,所以我打算仔细看它看到的差别是什么。
该signtool验证JLinkCDC.cat的输出看起来非常相似,我的除了它追溯了威瑞信,而不是GoDaddy的。
编辑#6:小的改动
为了让我的司机更像JLinkCDC.inf,我加DriverPackageType=PlugAndPlay
的INF文件,我缩短了文件名:现在的文件被称为polser.cat和polser.inf。 仍然没有运气!
编辑#7:一些成功!
我想下面的东西都是真实的; 请纠正我,如果我错了:
- 对于驱动程序包(.cat文件,),为正确选项
signtool verify
是/pa
。 我推断这从KMCS_Walkthrough.doc 。 - 对于驱动程序包时,Windows只考虑是否信任链追溯到在certmgr.msc“受信任的根证书颁发机构”文件夹中的待验证证书发布者。
- 对于驱动程序包,你可以用一个交叉证书(扩大从gdroot-g2.crt到Microsoft代码验证根信任链)签署,但Windows似乎忽略。 这是因为Microsoft代码验证根不是“受信任的根证书颁发机构”。
- 还有为当前用户和证书本地计算机证书存储。 他们两人的关系,所以你应该使用MMC证书管理单元查看两个。 Certmgr.msc只显示当前用户的人。
- 窗户应无缝地添加需要的时候,从Windows Update下载它(gdroot-g2.crt)到“受信任的根证书颁发机构”文件夹中,但它没有-的“G2的Go Daddy根证书颁发机构”。 这里更多的信息。
我使用的测试机上的Windows事件查看器中看到了什么事。 它看起来像Windows将取“的Go Daddy根证书颁发机构 - G2”它显示不良未经证实的发布者警告对话框会自动的,只是需要。 一旦用户关闭该对话框,该证书是从Windows Update获取,所以在安装时一次尝试应该会成功。 有趣的是,它会自动下载一个星空证书(这是在信任链为我戳根)及时。
我已经得到我的签名通过gdroot-g2.crt双击并导入它之前,我尝试安装驱动程序在Windows 7和Windows Vista计算机的工作。 我会看看这个过程可以实现自动化并添加到安装程序。
我发现了一个驱动程序包从另一家公司(JLinkCDC.cat)而与VeriSign证书签名的,植根于“威瑞信3级公用主证书颁发机构 - G5”。 该证书是所有我已经看了看电脑,所以如果你与VeriSign,而不是去爸爸走,我认为你能避免这个问题与Windows更新。
我没有注意到的VeriSign证书使用SHA1,而我的Go Daddy证书使用SHA256的签名算法和签名的哈希算法。 不知道如果该事项。
编辑#8:要求微软求助
见讨论和我在MSDN论坛上的结论: http://social.msdn.microsoft.com/Forums/en-US/wdk/thread/1fede768-7925-4f30-8eef-ce5bd08b0b60