Apple推送通知服务:证书安装服务器端?

时间:2009-10-28 03:57:17

标签: php certificate apple-push-notifications

我已按照How to build an Apple Push Notification provider server (tutorial)的说明尝试设置推送通知服务器。

当我尝试连接以下PHP代码时

// connect to apns server
$strAPNSUrl = 'ssl://gateway.sandbox.push.apple.com:2195';
$strAPNSCert = 'dev.pem';

// generate stream
$oStreamContext = stream_context_create();
stream_context_set_option($oStreamContext, 'ssl', 'local_cert', $strAPNSCert);

// create the socket connection
$oAPNS = stream_socket_client($strAPNSUrl, $iError, $strError, 2, STREAM_CLIENT_CONNECT, $oStreamContext);

我收到以下警告

Warning: stream_socket_client() [function.stream-socket-client]: SSL operation failed with code 1. OpenSSL Error messages: error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert

根据我在Google上找到的信息,问题似乎是我的证书。

我正在OS X中生成我的csr和pem文件(pem文件按照教程中的说明)。一旦我创建了dev.pem,我就将它上传到我的托管服务提供商并尝试运行我的php脚本。这是创建和“安装”证书的正确方法吗?

我的调试想法已经用完了。任何方向都会很棒。

2 个答案:

答案 0 :(得分:8)

我的服务器上dev.pem的路径不正确。

指令确实是生成.pem文件的正确方法。一旦创建,它就可以在任何机器上使用(而不仅仅是生成它的机器)。

答案 1 :(得分:1)

您是否可以在服务器中使用相同的.pem文件?正如你所说的......在任何一台机器上。

我已经按照本教程操作,我可以从我的机器发送消息(证书是生成的那个),但我已经尝试复制所有文件并在另一台机器上运行脚本,我有同样的错误你有

你是如何让它在另一台机器上工作的?你安装了.pem文件吗?有什么特别的配置吗?

干杯