8

我已按照如何构建 Apple 推送通知提供程序服务器(教程)中的说明尝试设置推送通知服务器。

当我尝试连接以下 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 脚本。这是创建和“安装”证书的正确方法吗?

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

4

2 回答 2

8

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

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

于 2009-10-28T16:50:02.817 回答
1

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

我已按照本教程进行操作,我可以从我的机器发送消息(生成证书的消息),但我尝试复制所有文件并在另一台机器上运行脚本,但我遇到了与您相同的错误。

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

干杯

于 2009-12-08T13:34:21.423 回答