使用GoDaddy证书为Windows应用签名,以便进行侧载(针对Windows Store应用程序)

3

我需要签署一个企业Windows Store应用程序,以便用户可以将其侧载到他们的设备中。

我正在从GoDaddy获取代码签名证书。对于接下来的许多步骤,我仍然感到有些模糊 - 欢迎提供更多细节。

到目前为止我所做的

  • 该应用程序已经测试过,我能够在拥有开发者许可证的机器上部署它
  • 从Daddy购买了代码签名证书,但不知道下一步该怎么做(根据以往经验,我认为需要在我的开发机器上生成密钥对和证书签名请求)。
  • 联系GoDaddy支持,他们说我实际上需要驱动程序签名证书而不是代码签名证书。成本相同,所以他们立即切换了我的购买。
  • 事实证明,在Windows上生成CSR有一个自动化的过程,但你必须使用Internet Explorer才能完成。显然,加密的东西由Internet Explorer和GoDaddy网站透明地处理。我想知道更多关于那里实际上正在发生什么的事情。
  • 作为流程的一部分,您需要提供软件发布商(在这种情况下是我的客户)的法定名称和官方地址/电话。
  • 提交请求后,它必须经过GoDaddy的批准(他们应该以某种方式验证我是否被授权代表出版商签署代码)。

下一步操作

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

我正在创建一个应用程序,该应用程序将在另一家公司中发布到所有员工的设备上。我不能使用该公司的证书进行签名。为了使他们能够接收并信任此应用程序,我需要采取相同的流程吗?是否仍需要管理员密码来加载应用程序? - Playforward
侧加载似乎是满足您需求的可行方法。一旦您使用自己的证书创建了已签名的应用程序包,另一家公司就应该能够将其推送到其设备上。话虽如此,如果应用程序的性质允许,通过Windows商店可能会更容易些。 - Youval Bronicki
2个回答

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

你是如何创建证书请求的?Internet Explorer是一个浏览器,所以我不明白它的关联。你是想说你使用了IIS来创建证书请求吗? - Quark Soup
@MikeDoonsebury,当这种情况通过浏览器发生时,我也感到非常惊讶。显然,证书注册 API 允许网站与 Windows 证书管理机制进行交互(如果用户使用的是 Microsoft 浏览器)。 - Youval Bronicki

2

这里有很多东西。 :) 你需要阅读一些文档:

阅读并理解这些文档将使您更好地了解正在发生的事情。 您确定要为其部署的企业没有已经部署到其桌面映像中的受信任根证书吗? 如果有,使用该私钥对应用程序进行签名可能会更容易。 (推荐使用公共证书颁发机构的唯一原因是您将无需将证书部署到目标计算机。)

您可以在邪恶的PFX格式中移动证书(和私钥),它基本上是PKCS#12可移植密钥文件。 但是,请非常小心地移动该文件。 它包含您的公钥和加密私钥。


关于“签署应用程序”的文档中有一节关于使用备用证书的内容,这似乎是我未来需要使用的。谢谢! - Youval Bronicki
还有,谢谢你提供的关于PFX格式的提示。有没有关于在我的情境下如何使用它的链接? - Youval Bronicki

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接