如何使用我的代码签名证书签署exes和dll

Tim*_*Tim 8 code-signing

(我从Thawte那里购买了代码签名证书,并且在整个过程中一直对我感到沮丧.

我从他们那里得到的是:

  • .spc/.p7b文件
  • .pvk文件

(注意我没有他们的pfx文件.天知道为什么,但我一直在与他们的技术支持人员争斗一周)

在任何情况下,我在他们的网站上找到"帮助"链接,在MS上找到signcode.exe这对我来说没用,因为我在我的机器上找不到exe,但是我确实有signtool.exe.

不幸的是,我对这个MS帮助网站上列出的命令行参数感到困惑.

具体来说,我使用什么参数和什么值?我尝试了我认为很明显但我根本不起作用的东西.

我可以让签名向导工作,但是我需要这个在Hudson CI批处理文件中以非交互方式工作.

它似乎真的不应该是这么困难,但到目前为止它都是黑魔法.

谢谢你的帮助

Ste*_*art 9

首先,您可以使用http://msdn.microsoft.com/en-us/library/ff549703(VS.85).aspx中描述的pvk2pfx工具生成您自己的pfx文件.

就像是

pvk2pfx -pvk cert.pvk -spc cert.spc -pfx cert.pfx -pi password

应该做的伎俩.

其次,signtool是你追求的工具.http://msdn.microsoft.com/en-us/library/aa387764(VS.85).aspx

signtool标志/?

获取帮助,但您可能会执行的基本命令是

signtool sign/f cert.pfx/p password target.exe

哪个会签署target.exe.如果要将证书放入计算机上的证书存储区(这是CSP位),则会变得更加复杂.这对于在许多开发机器上进行签名或在构建实验室机器上进行签名非常有用,在这些机器上您要避免将证书放在源代码管理中.

  • 您几乎肯定想使用/ t http:// timestamp.verisign.com/scripts/timstamp.dll添加时间戳(您可以选择其他服务器,但VeriSign通常是一个不错的选择)选项 - 否则,签名赢了'证书在一两年内到期后,标记为有效.timestamp命令应该是"基本命令"的一部分,因为太多人似乎忘记它并在以后遇到问题.(注意/ t命令有一个空格来防止"http"被删除) (8认同)