我已按照如何构建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);

我收到以下警告

<代码> 警告:stream_socket_client()[function.stream-socket-client]:SSL操作失败,代码为1. OpenSSL错误消息:错误:14094410:SSL例程:SSL3_READ_BYTES:sslv3 alert

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

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

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

有帮助吗?

解决方案

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

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

其他提示

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

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

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

干杯

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top