代码签名窗口存储用于侧载的应用程序(使用GoDaddy证书)

时间:2013-02-21 06:56:30

标签: windows-8 code-signing code-signing-certificate sideloading

我需要签署我开发的企业Windows应用商店应用,以便用户可以sideload进入他们的设备。

我正在从GoDaddy获取代码签名证书。很多接下来的步骤对我来说仍然是模糊的 - 任何额外的细节将不胜感激。

到目前为止我做了什么

  • 该应用程序已经过测试,我能够deploy it on machines that have a developer license
  • 从Daddy购买了代码签名证书,但不知道下一步该做什么(根据过去的经验,我认为我需要在我的开发者机器上生成密钥对和证书签名请求)
  • 被称为GoDaddy的支持人员说我实际上需要一个驱动程序签名证书而不是代码签名证书。成本是相同的,所以他们立即切换我的购买。
  • 事实证明,在Windows上有一个自动生成CSR的过程,但您必须使用Internet Explorer。显然,Internet Explorer和GoDaddy网站以某种方式透明地处理加密内容。我希望更多地了解那里的实际情况。
  • 作为流程的一部分,您需要提供软件发布者的法定名称和官方地址/电话(在本案例中为我的客户)。
  • 一旦您提交请求,就必须得到GoDaddy的批准(GoDaddy应该以某种方式验证我是否已获得发布商授权代表其签署代码)。

后续步骤

  • 我认为GoDaddy需要从发布者那里收到一些文件。我很想知道这个过程是如何运作的,需要多长时间。
  • 证书颁发后,我希望再次有一些简单的方法可以在我的开发机器上安装它。问题:有没有办法将密钥和证书移动到另一台机器上?
  • 我还希望Visual Studio(我在Windows 8上使用2012 Express版本)能够在创建应用程序包时使用证书。我是否需要为此做一些特殊的设置,或者它是否直截了当(“创建应用程序包”向导的一部分)?
  • 我在证书签名请求中提出的一些细节最终会在实际证书上显示(安装应用程序的人员可以看到)。哪些?

2 个答案:

答案 0 :(得分:7)

完成这个过程后,我自己的答案是:

  • 事实证明,当GoDaddy支持代表错误时 建议我使用驾驶员签名证书。我需要一个代码签名证书。
  • 证书未显示联系人的详细信息(包含在证书签名请求中)。您可以在提交请求之前查看证书详细信息(我最初错过了)。在我的情况下,显示的详细信息是公司名称,城市,州和国家。
  • 文档要求取决于请求证书的公司(在某些情况下,他们可能根本不需要任何文档)。 GoDaddy非常友好的支持,所以你应该可以满足他们的要求。该过程可能需要几天时间才能完成(但他们可以帮助您更快地完成此任务)。
  • 在证书申请阶段和安装阶段使用Internet Explorer时,流程是无缝的。我相信它使用Microsoft's Certificate Enrollment APIthis MSDN blog post中也有描述)
  • 如JP Alioto所述,使用证书的过程在文章“Signing an app package (Windows Store apps)”中有所描述。要在特定项目中使用新证书:
    • 打开项目.appxmanifest文件
    • 转到“打包”标签
    • 在发布商字段旁边,点击“选择证书”
    • 在弹出的对话框中单击“配置证书”,然后选择下拉选项“从证书存储区中挑选..”。证书应作为其中一个选项提供。
  • 要导出证书,您可以使用以下过程:
    • 运行 certmgr.msc
    • 找到证书
    • 右键点击> 所有任务> 导出以启动证书导出向导,该向导具有导出私钥的选项
      • 警告:私钥应该是个人密钥,您应该保护它。如果你将它复制到你控制的另一台机器上(假设没有人可以在传输过程中抢夺它),这可能就行了。与其他人分享可能会有风险。我无法找到有关Windows如何使用私钥的信息,但让几个人共享私钥可能是一个坏主意。
  • 要从PFX文件导入证书和私钥,请在Windows资源管理器中右键单击该文件,然后选择“安装PFX”。这将启动一个直接的“证书导入向导”。

答案 1 :(得分:2)

那里有很多东西。 :)你需要阅读的文件很少:

阅读和理解这些文档可以让您更好地了解正在发生的事情。您确定要部署的企业是否已经拥有他们部署到桌面映像的受信任的根证书?如果他们这样做,可能更容易使用该私钥来签署应用程序。 (建议使用公共证书颁发机构的唯一原因是您不必将证书部署到目标计算机。)

您可以在evil PFX format中移动证书(以及不幸的私钥),这基本上是PKCS #12 portable key file。但是,要非常小心你如何移动该文件。它包含您的公钥和加密的私钥。