APNS 開發之 PHP stream_socket_client()讀取 pem 文件報錯求助!

2015-02-06 18:56:25 +08:00
 konakona
以前沒幹過這種事!沒經驗了!來求助!
其實跟APNS關係不大,就是需要使用stream_socket_client()讀取pem文件。

爲了開發APNS,照着這個做的:
http://zxs19861202.iteye.com/blog/1532460
PHP部分在最下便。

IOS開發同學已經把生成好了的ck和aps_development的pem給了我。

已看了一些方法: http://stackoverflow.com/questions/809682/error-using-ssl-cert-with-php (絕對路徑fix,不過這個對我沒用撒)

我的大媽:

<?php

$deviceToken = '啊裏啊裏啊裏啊裏啊裏啊裏啊裏';

// Put your private key's passphrase here:
$passphrase = '**************';

// Put your alert message here:
$message = 'My first push test!';

////////////////////////////////////////////////////////////////////////////////

$ctx = stream_context_create();
stream_context_set_option($ctx, 'ssl', 'local_cert', dirname(__FILE__) . '/' .'ck.pem');
/* stream_context_set_option($ctx, 'ssl', 'local_cert', 'ck.pem'); */
stream_context_set_option($ctx, 'ssl', 'passphrase', $passphrase);

權限給足!:


報錯:

2296 次点击
所在节点    程序员
3 条回复
konakona
2015-02-06 19:11:18 +08:00
補充一下報錯的行是:
$fp = stream_socket_client('ssl://gateway.sandbox.push.apple.com:2195', $err,$errstr, 60, STREAM_CLIENT_CONNECT, $ctx);
vibbow
2015-02-07 20:23:31 +08:00
LZ这是自签名的证书?
需要把整个证书链都放到证书里的。
konakona
2015-02-08 06:01:45 +08:00
@vibbow =,= 是的..n久后我发现了这个问题,已不再报错。再n久后,我发现ios开发童鞋接受的是sandbox,而我一直在往正式地址里push..TAT
问题解决了~

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/168873

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX