1

连接 APNS 并发送推送通知时出现以下错误。

错误:

警告:stream_socket_client():SSL 操作失败,代码为 1。OpenSSL 错误消息:错误:14090086:SSL 例程:ssl3_get_server_certificate:certificate verify failed in /filepath/file.php on line 63

警告:stream_socket_client():无法在第 63 行的 /filepath/file.php 中启用加密

警告:stream_socket_client():无法连接到第 63 行 /filepath/file.php 中的 tls://gateway.push.apple.com:2195(未知错误)

我的代码是:

$ctx = stream_context_create();    
tream_context_set_option($ctx, 'ssl', 'local_cert', $pemfile);    
stream_context_set_option($ctx, 'ssl', 'passphrase', $passphrase);    
$fp = stream_socket_client(
            'ssl://gateway.push.apple.com:2195',
            $err,
            $errstr,
            60,
            STREAM_CLIENT_CONNECT | STREAM_CLIENT_PERSISTENT,
            $ctx
        );

似乎 .pem 文件 ($pemfile) 没有通过 SSL 连接。

我正在使用 PHP 版本 7.2.8

4

1 回答 1

2

最后,我通过替换解决了我的问题

$ctx = stream_context_create();

和:

$ctx = stream_context_create([
            'ssl' => [
                'verify_peer'      => false,
                'verify_peer_name' => false
            ]
        ]);
于 2020-01-28T14:28:54.270 回答