我应该为 APNS HTTP2 API 使用不同的证书吗?

Posted

技术标签:

【中文标题】我应该为 APNS HTTP2 API 使用不同的证书吗?【英文标题】:Should I use a different certificate for the APNS HTTP2 API? 【发布时间】:2016-06-13 15:37:11 【问题描述】:

最近,我想将我的推送通知代码从基于旧的二进制 API 更改为新的 http2 API。问题是当我连接到苹果时,我应该为这个 http2 API 使用不同的证书吗?因为当我使用 http2 API 向苹果发送带有有效令牌的通知(当我使用旧 API 发送通知时令牌有效)时,它返回“BadDeviceToken”。所以我想知道是令牌是真的坏还是我使用的证书不合格。

【问题讨论】:

【参考方案1】:

我们还试图解决这样一个问题,即我们试图使用 HTTP/2 API 将推送发送到生产设备令牌但得到 "reason":"BadDeviceToken" 作为响应,这显然是我们的错误,我们使用与在开发环境中用于测试推送通知的代码相同的代码在生产环境中发送推送通知,这是向

https://api.development.push.apple.com/3/device/

对于生产来说应该是

https://api.push.apple.com/3/device

希望它对某人有所帮助,但新 API 的一个问题是分发 SSL 证书适用于沙盒和生产,而不是相反,所以要小心。

【讨论】:

@TerNovi 是的,有人对这两个答案都投了反对票。【参考方案2】:

您仍然可以将旧证书与新的 HTTP/2 API 一起使用。

BadDeviceToken 最常见的原因是您尝试使用开发令牌通过他们的生产网关,反之亦然。 令牌仅对开发或生产有效,这取决于您应用的配置文件。

【讨论】:

是的,你是对的。最后发现我使用的token字符串太长了,因为尾随空格。

以上是关于我应该为 APNS HTTP2 API 使用不同的证书吗?的主要内容,如果未能解决你的问题,请参考以下文章

说说apns和http2

在 Swift2 中通过 HTTP2 与 APNS 服务器通信

curl 将数据发布到 HTTP/1.1,即使使用 APNs 的 http2 选项

即使 http2 返回代码 200,iOS APNS 也不会在设备上用于开发和生产

服务器 2008 上的 HttpTwo 客户端(带有 JWT 的 APNS)

APNS Apple 推送通知服务未收到来自 Apple 的成功消息