代码之家  ›  专栏  ›  技术社区  ›  davidcl

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

  •  1
  • davidcl  · 技术社区  · 14 年前

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

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

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

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

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

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

    有什么建议吗?

    1 回复  |  直到 13 年前
        1
  •  2
  •   davidcl    13 年前

    问题实际上包含正确的过程——使用包含根证书、中间证书、开发人员证书和私钥的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节省了时间,也就是直接使用.spc和.pvk文件的代码签名向导(我认为它是.NET SDK的一部分)。