【问题标题】:I've lost the certification to generate a .p12, How I can generate a new one?我失去了生成 .p12 的认证,如何生成新的?
【发布时间】:2013-02-28 14:32:05
【问题描述】:

目前,我在 appStore 中发布了一款应用,但我不知道推送通知为何不起作用。我的服务器中的 .p12 文件有问题,因为当我的服务器尝试生成推送并将其发送到 Apple 环境时,我可以在日志中看到下一个错误:

02-27 11:42:11,868 [IOSPushNotificationSender] 错误 javapns.notification.PushNotificationManager - 交付错误:javapns.communication.exceptions.InvalidCertificateChainException:无效证书链(收到致命警报:certificate_unknown)!验证您提供的密钥库是否按照规范生成...

2013-02-27 11:42:11,874 [IOSPushNotificationSender] 错误 camMan.server.mobile.ApplePNSSender - javapns.communication.exceptions.InvalidCertificateChainException:无效证书链(收到致命警报:certificate_unknown)!验证您提供的密钥库是否按照规范生成...

好的,我已经尝试生成一个新的 .p12 文件,但我不记得到底哪个是原始证书 (.cer)。

我尝试从配置文件下载 (.cer),但是当我使用钥匙串访问打开它时,此证书没有任何私钥。

所以,我迷路了,我不知道我能做什么...我可以生成一个新的 .p12 文件而不必修改我的应用程序中的任何认证或任何内容吗?我不想在 appStore 中上传我的应用程序的新版本……我只需要知道如何生成或下载或设置新的有效 .p12 文件并再次发送推送通知。

我还检查了配置门户中的所有设置,并且一切都已启用,就像我拥有的​​其他应用程序一样活跃......所以我认为唯一的问题是 .p12

此外,我仍然拥有 p.12 的相同密钥/密码...只是我丢失了 CSR (.cer)。

【问题讨论】:

  • 你下载证书的那个开发者账号是你客户的账号吗?或者这个证书不是从同一个mac生成的?
  • 您是 a) 使用开发证书还是 b) 将有效负载发送到 gateway.sandbox.push.apple.com 而不是 gateway.push.apple.com?
  • 没错,我在其他 Mac 上工作...我刚刚从配置文件下载了 production.cer 证书,当我使用钥匙串访问权限打开它时,完全正确!!!,CSR在那里还有私钥......哇!......我刚刚生成了一个 .p12 但现在我无法测试它......我会让你知道发生了什么......谢谢

标签: ios app-store push-notification csr


【解决方案1】:

听起来您的机器上缺少私钥 - 要么已被删除,要么属于另一台 Mac。

在任何一种情况下,您都可以通过上传新的 CSR(由 Mac 上的 Keychain Access 应用创建)简单地撤销现有的 vert 并创建一个新的。

【讨论】:

  • 谢谢,没错,私钥在其他电脑上。谢谢
【解决方案2】:

没有私钥,您的证书和配置文件就毫无价值。在仔细阅读 Apple 关于该主题的文档后,将它们全部撤消、全部删除并重新生成新的证书和规定。如果 Xcode 项目没有自动执行此操作,您必须修改 Xcode 项目中的构建设置以使用新设置。这不会影响已获批准并在 App Store 中的应用。

【讨论】:

  • 谢谢,我不需要生成新证书,因为问题出在私钥上(在其他计算机上)。但无论如何,最后提到的内容非常重要......如果您应该为您的应用程序撤销并生成新证书并在 Xcode 配置(目标)中更改它,请记住这一点非常重要您的应用程序的当前应用程序/版本不会受到影响。谢谢
  • 但是,在这种情况下,您应该撤销并重新生成 .p12 文件,这将是一个新的和不同的文件,对吧?那么,在这种情况下,如果您在服务器中更新新的 .p12 文件,如何不影响应用商店中批准的当前版本???当然是……对吧?
  • App Store 中的应用在修改应用程序包后使用 Apple 的证书而不是您的证书进行签名。您可以通过从 App Store 下载您自己的应用程序来检查这一点。
【解决方案3】:

由于您在开发阶段有推送通知工作,因此可能熟悉将证书安装到服务器的过程。

如果您丢失了旧文件,您可以随时创建和安装新证书。

有两件事你必须注意:

开发阶段:

您正在使用开发推送 SSL 证书

你的目标服务器是:gateway.sandbox.push.apple.com

生产阶段:

您正在使用生产推送 SSL 证书

你的目标服务器是:gateway.push.apple.com

【讨论】:

  • 我在 iOS 方面没有太多经验,但我认为我无法在开发环境中收到推送通知。我会看看...谢谢你的提示。
猜你喜欢
  • 2012-04-24
  • 2016-05-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-20
  • 1970-01-01
  • 1970-01-01
  • 2012-05-02
相关资源
最近更新 更多