stream_socket_client():无法设置私钥文件

时间:2016-10-13 16:02:13

标签: php ios sockets ssl

我正在使用PHP实现iOS推送通知,在过去的几个小时里,我一直在努力解决此错误stream_socket_client(): Unable to set private key file。 我已经在SO中遇到过各种相关问题但到目前为止没有人帮助过我。

无论如何,我发现了一个有趣的发现 这是我的代码:

$context = stream_context_create();
stream_context_set_option($context, 'ssl', 'local_cert', $this->sslPem);
stream_context_set_option($context, 'ssl', 'passphrase', $this->passPhrase);

$this->apnsConnection = stream_socket_client('ssl://gateway.sandbox.push.apple.com:2195', $error,
    $errorString, 60, STREAM_CLIENT_CONNECT, $context);

var_dump($this->apnsConnection);

输出:
stream_socket_client(): Unable to set private key file

但是当我从地址中删除协议(ssl://)到要连接的套接字时,它就成功连接。

$this->apnsConnection = stream_socket_client('gateway.sandbox.push.apple.com:2195', $error,
    $errorString, 60, STREAM_CLIENT_CONNECT, $context);

var_dump($this->apnsConnection);

输出:
resource(93, stream)

这种方式是如何以及为何发生的?

0 个答案:

没有答案