同一证书文件中的多个 APNS 证书

Posted

技术标签:

【中文标题】同一证书文件中的多个 APNS 证书【英文标题】:Multiple APNS certificates in same certificate file 【发布时间】:2012-12-08 20:39:04 【问题描述】:

我一直在寻找这个问题的答案,但似乎找不到。我将 PUSH 通知发送到我的应用程序的多种风格。我之前已将其设置为遍历每个证书并将其与用户应用程序类型相匹配。实际上,我为每个证书创建了一个新的 SSL 连接,然后为该特定证书发送任何通知。

转换所有这些证书并在它们过期时安装它们有点繁琐。我可以将 KeyChain 访问中的多个证书导出为单个 p12 文件并将其转换,这有助于从证书管理的角度使事情变得更简单。问题在于没有收到我的 PUSH 通知。我可以成功连接到 APNS,反馈服务没有报告任何问题,但似乎没有任何问题。这使我相信 APNS 正在验证文件中唯一的第一个证书,并忽略任何其他允许成功连接但可能会阻止发送通知的证书。在这种情况下,我预计会出现连接断开或反馈服务上报告的问题,但到目前为止我都没有看到。

有没有人对成功做到这一点有任何见解?谢谢。

【问题讨论】:

【参考方案1】:

让我重申一下:您将多个证书一起打包到一个容器/集合/任何东西中,并且您正在使用它与 APNS 建立相互验证的 SLL 会话。然后,您发送与任何一个证书关联的一个或多个设备的请求,但它不起作用。准确吗?

如果是这样,那么我认为您对问题的总结是正确的。事件的顺序是在建立 SSL 会话时评估证书。这是网络协议的一部分,此时 APNS 服务器必须选择要使用的证书。然后,当您发送请求时,“应用程序服务器”仅验证设备令牌包含与证书相同的帐户信息。你的场景很重要,除非 Apple 明确投入支持它,否则它不可能工作。在那种情况下,我希望它会在开发人员文档中被提及。不是。

在这种情况下,您也不会在反馈服务中看到任何内容,因为只会为与证书中的帐户关联的设备收集/发送反馈。

顺便说一句,如果您使用的是 APNS 协议的增强格式,那么您可以在发送时读取错误响应。请参阅programming guide 了解更多信息。

【讨论】:

是的,你明白了。我想是这样,我只是想把它放在那里,以防有人知道让它工作的方法。感谢您的确认。

以上是关于同一证书文件中的多个 APNS 证书的主要内容,如果未能解决你的问题,请参考以下文章

APNS SSL 证书和 VOIP 服务证书并行

具有相同证书的多个 APNS 提供商

多个 MDM 服务器,多个 APNs 证书?

一个App ID使用多个APNS证书有啥用?

替换分发配置文件时,iOS APNS 证书是不是会失效?

如何在调用 API 时向 APNS 发送推送证书?