如何使用代码签名证书对ActiveX控件进行签名并成为经过验证的发布者?

时间:2010-05-11 20:33:00

标签: activex certificate authenticode signtool thawte

我正在尝试使用Thawte发布的代码签名证书对ActiveX控件进行签名。我能够使用signtool.exe成功签署控件。

当我查看文件属性时,它会显示“签名中的证书无法验证”。

当我查看证书时,它说“Windows没有足够的信息来验证证书。”

在证书路径选项卡上,显示“无法找到此证书的颁发者。”

在Internet Explorer中,证书被识别为已签名,但用户会收到发布者未经过验证的警告。

我尝试创建一个包含我的证书的PFX文件,以及链接到我的Thawte开发人员证书的根证书和中间证书,然后使用该PFX文件重新签名控件。没有骰子。

有什么建议吗?

1 个答案:

答案 0 :(得分:2)

问题实际上包含正确的过程 - 使用包含根证书,中间证书,开发人员证书和私钥的PFX文件进行签名。另外,使用时间戳服务器。我的问题是我的PFX中包含了错误的根证书,因此用于签名的证书无法链回到根目录。

根据请求,这里是有关如何创建PFX文件的信息。我在下面使用的cert2spc和pvk2pfx也在平台SDK中。

cert2spc certpath1.cer certpath2.cer certpath3.cer codesign.spc

.cer文件列表包括根,中间和代码签名证书,codesign.spc是输出文件。然后:

pvk2pfx -pvk privkey.pvk -spc codesign.spc

以这种方式运行pvk2pfx会启动一个向导,提示输入私钥密码,输出文件的位置以及输出文件的密码。

最后,signtool进行实际的代码签名:

signtool sign /f my_certificates.pfx /p my_passphrase /t http://timestamp.verisign.com/scripts/timstamp.dll my_activex_control.ocx

回想起来,我可能通过使用signcode.exe(即我认为是.NET SDK的一部分)的signcode.exe直接使用.spc和.pvk文件来节省时间。