iPhone:如何/是否将我现有的私钥包含在新证书中?

标签 iphone certificate private-key

简短版本:

我是否有必要甚至可能根据我现有的私钥生成新的分发证书,或者对于新应用程序和应用程序商店中现有应用程序的更新来说,使用以下命令生成新证书没有任何害处:新的私钥?

长版:

在我看来,iPhone 开发者计划用户指南中有关私钥和分发证书过期的信息存在冲突/误导性信息。

一方面,它说你应该用生命来保护你的私钥,并保留一份它的副本,以便在更换开发者机器时可以在新机器上使用它。我的理解是,您必须以某种方式保留您的一个真正的私钥(即,在请求第一个证书时为您的公司生成的第一个私钥),并永远使用它(至少,一旦您部署了应用程序,就永远使用它)并将其带到 App Store)。

另一方面,它告诉您分发证书将在一年后过期,您只需在需要时请求新的分发证书即可。对我来说有意义的是,如果他们在后面加上一个开头的段落,“因为在请求新证书时使用原始私钥对您来说至关重要,所以以下是您如何请求从预先创建的证书”现有的私钥...”但是没有这样的段落,经过搜索我还没有听说过这样做的方法。

stackoverflow 上有一篇密切相关的帖子:Lost Private Key For iPhone Distribution Certificate. What could be solutions?

该问题的答案似乎表明,当分发证书丢失或过期时,您可以撤销它并创建新的分发证书,这对您当前在应用商店中的应用没有影响,您可以继续发布使用新证书的新应用程序,Apple 不会说“嘿,你和以前不是同一家公司了。”

该帖子未回答的一个关键问题是,是否可以使用与之前发布应用时不同的证书/ key 来更新应用商店中的现有应用。但我在其他地方听说这也是可能的。

所以归根结底是:苹果公司让你的私钥听起来像你的私钥确实是识别应用程序来自你公司的东西,这是否具有误导性?真的只是您的应用程序 ID 加上登录开发门户和 itunesconnect 的凭据就能识别您的公司和应用程序吗?

最佳答案

可以生成一个新的私钥,并在不中断应用程序的情况下使用它。我从第一手经验中知道这一点 - 因为我丢失了 key ,不得不使其无效,并重新生成一个新 key - 之后我需要签署对我的两个现有应用程序的更新(使用旧 key 签名) - 并且向 AppStore 提交更新。

无论是在 key 被撤销后现有的应用程序,还是在人们更新后的新更新,都没有出现中断。在应用程序更新期间,应用程序中的用户数据也没有丢失。简而言之,一切都完全无缝。

有一个主题正在讨论推送通知是否会继续正常工作(如果您的应用程序使用它们)。不过我不能这么说。

关于iPhone:如何/是否将我现有的私钥包含在新证书中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3965162/

相关文章:

ios - 我可以自动创建UIImageView实例吗?

iphone - UIView 中的 UIViewController

windows-phone-8 - 使用 HttpWebRequest 手动检查服务器的证书

c# - 访问证书时出错 : Keyset Does Not Exist

iphone - iPhone 上的 SQLite3 - 插入返回错误代码 8 尝试写入只读数据库

java - 认证链只包含一个位置——Java & PKCS11

Java:如何显示一个对话框让用户接受 SSL 证书

java - 在 Java 中使用 AES 256 加密 RSA 私钥

encryption - 使用 ColdFusion 对数据进行签名以进行单点登录

iphone - 离开初始 View Controller 时停止播放音乐(使用 AVAudioPlayer)