某些设备的令牌无效
Posted
技术标签:
【中文标题】某些设备的令牌无效【英文标题】:Invalid token for some devices 【发布时间】:2012-04-10 11:42:55 【问题描述】:给定:
工作的 iPod 应用程序 php中的服务器端(修改easyapns)。我正在沙盒中发送请求 ssl://gateway.sandbox.push.apple.com:2195 如果我向 ssl://gateway.push.apple.com:2195 发送请求,则未返回错误,但未收到通知。在这种情况下,如果我发送完全错误的设备令牌(例如 12345),APN 仍然没有返回错误。
问题:APN 向查询增强通知格式返回 status_code => 8(用于说明停靠点:无效令牌),并为 5 个设备的 5 个令牌中的 4 个返回错误代码。
我有正确的开发证书,至少 iPod 的应用程序开发人员是这样说的,该开发人员将该证书发送给我。 并且 iPod 的应用程序开发人员认为应用程序每次都发送正确的开发令牌(我不知道如何在没有 mac 和开发人员工具的情况下检查设备令牌)。
已检查:
服务器端口 2195,2196 已打开 我的 iPod 连接到网络的路由器设置正确(并且用于接收的端口 5223 已打开) - 我在“iPusher”和“iPush 测试”应用程序上进行了测试 APN 连接成功 尝试从本地机器发送 尝试从 VPS 发送 已检查【问题讨论】:
您是否将令牌存储在某处,以便该部分可能存在问题? 目前在测试时直接在 php 代码中进行硬编码。而且不是我写的,只是复制/粘贴 iPod 应用程序发送到服务器的内容。 在与实时 APN 服务器通信时,您使用的是实时证书和实时令牌,对吧? 不,我使用的是正确的开发证书,至少 iPod 的应用程序开发人员是这样说的,该开发人员将该证书发送给了我。并且 iPod 的应用程序开发人员认为应用程序每次都发送正确的开发令牌(我不知道如何在没有 mac 和开发人员工具的情况下检查设备令牌)。您可能对我尝试请求生产 url 的事实感到困惑,但这是由于绝望。 【参考方案1】:当我遇到这个问题时,原来是因为密钥和证书不匹配。尝试使用 openssl 连接:
openssl s_client -connect gateway.sandbox.push.apple.com:2195
-cert cert.pem -key key.pem
直到喷出一堆以“已连接”开头的东西,你才没有正确连接。
【讨论】:
你能澄清一下什么样的“一堆东西”表示有效连接吗? 嗯......输出以'CONNECTED'开头,但你可能有一百行关于连接的详细信息。当证书和密钥不匹配时,您会得到类似:error setting private key 140735150221756:error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch:x509_cmp.c:331:
【参考方案2】:
我们面临着同样的问题。问题出在配置文件中:它是生产环境,但对于沙盒来说,它必须是开发环境。 更多描述见This comment
【讨论】:
以上是关于某些设备的令牌无效的主要内容,如果未能解决你的问题,请参考以下文章