3

我需要签署我开发的企业 Windows 应用商店应用程序,以便用户可以将其旁加载到他们的设备中。

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

到目前为止我所做的

  • 该应用程序经过测试,我能够将其部署在具有开发人员许可证的机器上
  • 从爸爸那里购买了一个代码签名证书,但不知道下一步该做什么(根据过去的经验,我认为我需要在我的开发人员机器上生成一个密钥对和一个证书签名请求)
  • 打电话给 GoDaddy 支持,他说我实际上需要驱动程序签名证书而不是代码签名证书。成本是一样的,所以他们立即改变了我的购买。
  • 事实证明,在 Windows 上有一个自动生成 CSR 的过程,但您必须使用 Internet Explorer。显然,Internet Explorer 和 GoDaddy 网站以某种方式透明地处理了加密内容。我很想知道更多关于那里实际发生的事情。
  • 作为流程的一部分,您需要提供软件发布者(在这种情况下是我的客户)的法定名称和官方地址/电话。
  • 一旦你提交了请求,它必须得到 GoDaddy 的批准(他应该以某种方式验证我是否被发布者授权代表它签署代码)。

下一步

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

2 回答 2

7

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

  • 事实证明,GoDaddy 支持代表在建议我使用驱动程序签名证书时是错误的。我需要一个代码签名证书。
  • 证书不显示联系人的详细信息(包括在证书签名请求中)。您可以在提交请求之前查看证书详细信息(我最初错过了它)。在我的例子中,显示的详细信息是公司名称、城市、州和国家。
  • 文件要求取决于申请证书的公司(在某些情况下,他们可能根本不需要任何文件)。GoDaddy 有非常友好的支持,所以你应该可以从他们那里得到要求。该过程可能需要几天时间才能完成(但他们可能会帮助您更快地完成)。
  • 在证书申请阶段和安装阶段都使用 Internet Explorer 时,该过程是无缝的。我相信它使用Microsoft 的证书注册 API (在此 MSDN 博客文章中也有描述)
  • 正如 JP Alioto 所说,使用证书的过程在文章“签署应用程序包(Windows Store 应用程序) ”中进行了描述。要在特定项目中使用新证书:
    • 打开项目 .appxmanifest 文件
    • 转到“包装”选项卡
    • 在发布者字段旁边,单击“选择证书”
    • 在弹出的对话框中单击“配置证书”并选择下拉选项“从证书存储中选择......”。证书应作为选项之一提供。
  • 要导出证书,您可以使用以下过程:
    • 运行certmgr.msc
    • 找到证书
    • 右键单击>所有任务>导出以启动证书导出向导,其中包含导出私钥的选项
      • 警告:私钥应该是个人的,你应该保护它。如果您将它复制到您控制的另一台机器上可能没问题(假设没有人可以在传输过程中抢夺它)。与其他人分享可能会有风险。我无法找到有关 Windows 究竟如何使用私钥的信息,但让几个人共享一个私钥可能是个坏主意。
  • 要从 PFX 文件导入证书和私钥,请在 Windows 资源管理器中右键单击该文件,然后选择“安装 PFX”。这将启动一个直接的“证书导入向导”。
于 2013-02-21T20:03:32.743 回答
2

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

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

您可以以邪恶的 PFX 格式移动证书(不幸的是,私钥),这基本上是一个PKCS #12 可移植密钥文件。但是,要非常小心如何移动该文件。它包含您的公钥和加密的私钥。

于 2013-02-21T07:17:34.237 回答