您知道为什么签名证书链中会遗漏“Microsoft Code Verification Root”吗?
我们最近在两个域之间移动了构建系统,并且必须重新安装证书。我们发现我们遇到了一个签名问题,其中Microsoft不在链中导致安装期间内核驱动程序拒绝。
我们注意到我们在certmgr中有2个额外的证书:Trusted Publisher:Certificates
在停用第3级公共主要认证后,“问题”消失了,我们与Microsoft建立了正确的签名链。
我不确定如何安装 Class 3公共主要认证或我们使用它并正在测试我们可能面临的影响。
有没有人遇到过这种问题,他们是如何处理的?有没有办法在命令行上禁用class-3,这样我就可以单独保留certmgr设置,从而降低风险?
感谢您的帮助
彼得
签署命令
signtool.exe sign /v /ac MSCV-VSClass3.cer /s TrustedPublisher /n "My Corp" /t http://timestamp.verisign.com/scripts/timstamp.dll mydriver.sys
签署验证 signtool verify / kp / v mydriver.sys
*** Signing Certificate Chain:
*** Issued to: Class 3 Public Primary Certification Authority
*** Issued by: Class 3 Public Primary Certification Authority
*** Expires: 8/2/2028 7:59:59 PM
*** SHA1 hash: xxxxxxxxxxxxxxxxxx
Issued to: VeriSign Class 3 Code Signing 2009-2 CA
Issued by: Class 3 Public Primary Certification Authority
Expires: 5/20/2019 7:59:59 PM
SHA1 hash: xxxxxxxxxxxxxxxxxx
Issued to: My Corp
Issued by: VeriSign Class 3 Code Signing 2009-2 CA
Expires: 9/10/2013 8:59:59 PM
SHA1 hash: xxxxxxxxxxxxxxxxxx
答案 0 :(得分:4)
理论上,我可以从verisign安装与我的证书匹配的交叉签名证书到证书商店,signtool会自动使用它。但是,这可能导致错误的证书用于交叉签名。
明确是更好的
SignTool.exe sign /v /s trustedpublisher /ac path-to-retrieved-cert\MSCV-VSClass3.cer /n myCertName /t http://timestamp.verisign.com/scripts/timestamp.dll driver-file-to-sign
SignTool.exe verify /kp /v drive-file-to-check
或者如果您有目录文件
SignTool.exe verify /kp /v /c driver-cat-file.cat drive-sys-file.sys
答案 1 :(得分:0)
我们比较了两个构建系统,并且我们在错误系统上的certmgr受信任发布者列表中发现了另外的Class 3 Public Primary证书。这与我们链中的顶级产品相匹配。我们禁用了此发布,链的顶部已恢复为microsoft。
所以,我们仍有疑问,但这似乎解决了我们的问题,对其他版本没有任何不良影响。