如何处理代码签名证书?

时间:2014-02-07 05:21:24

标签: wpf code-signing

我的公司订购了赛门铁克的代码签名证书,我被赋予了使用它的任务。我不知道该怎么做,即使在他们的网站上也没有明确的指示。我有一个.cer格式的证书,当我尝试在Visual Studio 2013中使用它 - 属性窗口时,它表示证书没有与之关联的私钥。我搜索并发现.pvk文件将存储在我们订购证书的系统注册表中。鉴于我可以获取.pvk文件,我想知道下一步该做什么。我有两个文件,我需要.pfx格式(包含私钥)。我知道这不是一个编程问题,但我希望有人像我一样有同样的问题,他们可以指导我。

我正在开发WPF应用程序。

3 个答案:

答案 0 :(得分:4)

这实际上很容易做到。

解决方案

在用于订购新证书的相同机器上,右键单击.cer文件并进行安装。

接下来,转到订购证书时使用的同一浏览器,然后导出证书。

  • 在IE上,转到菜单(齿轮图标) - >互联网选项 - >内容。选择证书,然后单击“导出...”。
  • 在Chrome上,转到菜单(3个小节) - >设置 - >高级 - >管理证书。选择证书,然后单击“导出...”。
  • 在Firefox上,转到Firefox(下拉菜单) - >选项 - >选项 - >高级 - >加密 - >查看证书。选择证书,然后单击“备份...”。

按照向导将证书导出到文件。请确认您选择“是,导出私钥”。使用“个人信息交换 - PKCS#12(.PFX)”选项,并选中“如果可能,请在证书路径中包括所有证书”和“导出所有扩展属性”复选框。

您现在可以将.PFX或.P12文件分发给开发人员。

详情

获取证书涉及创建CSR(证书签名请求)。此过程创建您的PK(私钥),并将其存储在该计算机的证书存储中。它还会创建实际的CSR,您的CA(证书颁发机构或颁发证书的公司)需要生成您的代码签名证书。整洁的是,CSR不包含您的私钥,因此您的CA永远不会得到PK。

您的CA使用CSR生成加密安全证书。因为他们没有PK,所以他们无法创建.PFX文件。他们只能创建.CER。通过在生成CSR的同一台计算机上安装.CER文件,证书存储将自动将CSR和关联的PK与.CER指纹进行匹配。安装证书后,您可以将证书和PK导出为单个.PFX。

答案 1 :(得分:0)

http://blogs.msdn.com/b/httpcontext/archive/2012/05/24/how-to-digitally-sign-a-strong-named-assembly.aspx

请确保使用Symantec证书,而不是文章中提到的自签名证书。

简单来说,signtool命令行实用程序保存了该过程中的密钥。

答案 2 :(得分:0)

你应该拥有的是来自赛门铁克的证书(我的证书来自ASCII文本块)。

  1. 创建扩展名为.cer的文本文件,将文本添加到文件中。
  2. 右键单击该文件,然后将.cer文件安装到计算机证书存储区中。让它选择向导中最好的一个。
  3. 打开证书管理器(在搜索框中键入certmgr.msc)。
  4. 右键单击并找到颁发给您的证书(不是由谁签发的证书)。
  5. 右键单击证书以将其导出。
  6. 您需要将其导出为PFX扩展名。如果这是灰色的,那么您需要重新颁发证书,因为它在创建时未启用导出。
  7. 获得PFX文件后,您可以使用Microsoft signtool.exe(可在Windows SDK中找到):
  8. 签署二进制文件的一个例子是:

    signtool sign /f your_exported.pfx /p <your_password> /t http://timestamp.verisign.com/scripts/timestamp.dll /v App-installer.msi