为 Apple 推送通知服务 (APNS) 设置 linux 提供程序

Posted

技术标签:

【中文标题】为 Apple 推送通知服务 (APNS) 设置 linux 提供程序【英文标题】:setting up a linux provider for Apple Push Notification Service (APNS) 【发布时间】:2012-03-27 14:55:37 【问题描述】:

萨拉姆,

我指的是this question来设置一个linux提供程序。

我认为main tutorial 和 Linux 版本之间的区别与证书的安装/存储/使用..etc 的方式有关

这些是我对其状态所做的步骤:

ok : 创建 app-id ok : 上传提供者 .csr ok:下载apns证书.p12 ok :将其转换为 .pem 并与提供者 privatekey.pem 连接 ok : 用 cmd 1 测试连接;成功显示“connected000003”和一些文字 ok:使用 cmd 2 测试连接(使用 Entrust CA) nok:使用教程的简单 php 测试推送消息:permission denied

cmd1:openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert apns-dev- cert.pem -key privateKey.pem

cmd2:openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert ck.pem -debug -showcerts -CAfile server-ca-cert.pem

【问题讨论】:

【参考方案1】:

看起来您正在使用easyapns。也许在 sql 数据库中您不是处于沙盒模式?如果您的权限被拒绝,请尝试将 php 文件 chmod 为 777

【讨论】:

我确实将标志切换到沙盒模式【参考方案2】:

我的目标是easyapns,但我正在使用第一个教程提供的simpepush.php 进行测试。令人惊讶的是,该脚本是从命令行运行的,而不是从浏览器运行的!

现在我正在从浏览器尝试easyapns,它正在工作。

更令人惊讶的是,我只需要使用mac机器上的ck.pem,上传到linux盒子

我无法解释为什么......

【讨论】:

命令行和基于浏览器的php之间的区别是一个SE安全问题:setbool httpd_can_network_relay 1 bugzilla.redhat.com/show_bug.cgi?id=804350

以上是关于为 Apple 推送通知服务 (APNS) 设置 linux 提供程序的主要内容,如果未能解决你的问题,请参考以下文章

使用 Apple 的推送通知服务 (APNS) 避免重复

来自 APNS(Apple 推送通知服务器)的反馈服务

Apple 推送通知服务 (APNS):反馈服务响应缺少字节?

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

APNS Apple 推送服务通知未收到

Apple 的 APNS 服务器是不是允许我向我的 Pass 用户发送随机推送通知?