通过 GPO 部署时代码签名证书不起作用

通过 GPO 部署时代码签名证书不起作用

我们从 Symantec 获得的代码签名证书已转换为受密码保护的 pfx,具有完整的证书链、公钥和私钥

当证书手动导入到构建服务器(Windows Server 2012 R2)时,使用 signtool(版本 10.0.17763.0,x64)进行签名有效,但当使用 DC(Server 2012 R2)的 GPO 推送证书时,签名无效

在这两种情况下:

  • 完整的证书链已导入,并且 DC 上的所有证书详细信息与服务器上的证书相同

  • 服务器上的证书常规选项卡声称“您有一个与此证书对应的私钥”

我的签名命令是这样的:

C:\Users\myUser>“C:\Program Files (x86)\Windows Kits\10\bin\10.0.17763.0\x64\signtool.exe” 签名 /debug /v /a /sm /s Root /n“”/thttp://timestamp.verisign.com/scripts/timstamp.dll应用程序

手动导入到服务器后执行的结果:

After EKU filter, 40 certs were left.
After expiry filter, 34 certs were left.
After Subject Name filter, 1 certs were left.
After Private Key filter, 1 certs were left.

GPO推送到服务器后执行的结果:

After EKU filter, 40 certs were left.
After expiry filter, 34 certs were left.
After Subject Name filter, 1 certs were left.
After Private Key filter, 0 certs were left.
SignTool Error: No certificates were found that met all the given criteria.

原因何在经过私钥过滤后,剩下 0 个证书

答案1

我用于发布证书的 gpo 是在以下位置设置的:计算机配置、策略、Windows 设置、安全设置、公钥策略、受信任的根证书

为了使其工作,我还必须在以下位置设置相同的证书:计算机配置、策略、Windows 设置、安全设置、公钥策略,值得信赖的出版商

我还必须启用计算机配置、策略、管理模板、Windows 组件、Windows 更新,允许来自 Intranet Microsoft 更新服务位置的签名更新

相关内容