2016-02-28 122 views
1

用于代码签名本MICROSOFT_ROOT_CERT_CHAIN_POLICY_CHECK_APPLICATION_ROOT_FLAG标志支持Windows XP中的Windows VistaWindows 7的代码签名证书标志

当我在上述操作系统CertVerifyCertificateChainPolicy功能使用此标志,我得到

CERT_E_UNTRUSTEDROOT 错误。

尽管如此,它对我来说工作正常Windows 8及以上。

回答

0

根据Microsoft

CERT_CHAIN_POLICY_PARA结构的dwFlags成员指出由pPolicyStatus参数可以包含MICROSOFT_ROOT_CERT_CHAIN_POLICY_CHECK_APPLICATION_ROOT_FLAG flag这将导致此功能还需要检查的微软应用程序根目录“Microsoft根证书颁发机构2011“。

因此,请确保那些较旧的系统安装了“Microsoft Root Certificate Authority 2011”软件包。欲了解更多信息,请参阅http://support.microsoft.com/kb/931125


手动安装证书

  1. 下载http://download.windowsupdate.com/msdownload/update/v3/static/trustedr/en/rootsupd.exe

  2. 使用命令rootsupd.exe/C/T提取文件:C:\ TEMP \ extroot

  3. from c:\ temp \ extroot运行以下4条命令(从提升的提示符)

    updroots.exe authroots.sst
    updroots.exe updroots.sst
    updroots.exe -l roots.sst
    updroots.exe -d delroots.sst

+0

感谢蒂姆。但我正在使用桌面应用程序,供全球用户使用。因此,我们如何让用户在其系统上安装“Microsoft Root Certificate Authority 2011”软件包。这个解决方案很难使用。有什么方法可以使代码在较低的操作系统上工作。 – rguabhi

+0

首先我会验证这个在你的测试Win7机器上;那么如果这是真的,你需要问问自己,如果你真的想使用这个标志,或者不知道微软说了什么。 –

+0

我已经在Windows Vista和Windows 7上测试过了,它是失败的。我需要这个标志,因为微软已经改变了代码签名证书。要验证新证书我想要这个标志。 – rguabhi