【问题标题】:How can I sign an ActiveX control with a code signing certificate and be a verified publisher?如何使用代码签名证书对 ActiveX 控件进行签名并成为经过验证的发布者?
【发布时间】:2011-02-18 08:16:36
【问题描述】:

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

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

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

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

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

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

有什么建议吗?

【问题讨论】:

  • 嗯,我可能已经解决了这个问题——看起来问题可能是我包含的根证书之一不正确。明天部署新签名的控件时,我肯定会知道...
  • 使用OpenSSL for Windows的描述。

标签: activex certificate authenticode signtool thawte


【解决方案1】:

问题实际上包含正确的程序——使用包含根证书、中间证书、开发人员证书和私钥的 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

回想起来,我可能通过使用直接使用 .spc 和 .pvk 文件的 signcode.exe 又名代码签名向导(我认为它是 .NET SDK 的一部分)节省了时间。

【讨论】:

  • 您是如何创建包含认证链中所有证书的 PFX 的?我遇到了同样的问题 - 你没有告诉我们如何解决它!
  • 伊恩,对不起,我没有早点看到你的评论,但我实际上对此有注释,并将它们添加到这个答案中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-10-16
  • 1970-01-01
  • 2018-06-03
  • 1970-01-01
  • 1970-01-01
  • 2010-10-22
  • 2013-04-21
相关资源
最近更新 更多