我已按照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脚本。这是创建和“安装”证书的正确方法吗?
我的调试想法已经用完了。任何方向都会很棒。
答案 0 :(得分:8)
我的服务器上dev.pem
的路径不正确。
指令确实是生成.pem文件的正确方法。一旦创建,它就可以在任何机器上使用(而不仅仅是生成它的机器)。
答案 1 :(得分:1)
您是否可以在服务器中使用相同的.pem文件?正如你所说的......在任何一台机器上。
我已经按照本教程操作,我可以从我的机器发送消息(证书是生成的那个),但我已经尝试复制所有文件并在另一台机器上运行脚本,我有同样的错误你有
你是如何让它在另一台机器上工作的?你安装了.pem文件吗?有什么特别的配置吗?
干杯