Warning: stream_socket_client(): невозможно установить файл закрытого ключа

не удалось получить эти ошибки при запуске PHP в терминале как php simplepush.php

Warning: stream_socket_client(): Unable to set private key file `/users/accenture/Desktop/newAPNS/ck.pem' in /users/accenture/Desktop/newAPNS/simplepush.php on line 22

Warning: stream_socket_client(): failed to create an SSL handle in /users/accenture/Desktop/newAPNS/simplepush.php on line 22

Warning: stream_socket_client(): Failed to enable crypto in /users/accenture/Desktop/newAPNS/simplepush.php on line 22

Warning: stream_socket_client(): unable to connect to ssl://gateway.sandbox.push.apple.com:2195 (Unknown error) in /users/accenture/Desktop/newAPNS/simplepush.php on line 22

Failed to connect: 0 

Я создал все сертификаты и файл pem с помощью статьи raywenderlich, http://www.raywenderlich.com/32960/apple-push-notification-services-in-ios-6-tutorial-part-1#comments

Ответы

Ответ 1

Проблема в том, что файл pem не правильный, я создал файл pem, используя http://www.raywenderlich.com/32960/apple-push-notification-services-in-ios-6-tutorial-part-1. Создание файла p12 и создание файла p12 у меня не работают. Правильный процесс для создания p12 и p12 для создания файла pem, как показано ниже

Получив сертификат Apple для своего приложения, экспортируйте свой ключ и сертификат Apple в виде файлов p12. Вот краткое руководство о том, как это сделать:

  1. Нажмите стрелку раскрытия рядом с вашим сертификатом в Keychain Access и выберите сертификат и ключ.
  2. Щелкните правой кнопкой мыши и выберите "Экспортировать 2 элемента…".
  3. Выберите формат p12 из выпадающего списка и назовите его cert.p12.

Теперь преобразуйте файл p12 в файл pem:

$ openssl pkcs12 -in cert.p12 -out apple_push_notification_production.pem -nodes -clcerts

Это работает для меня, теперь я получаю push-уведомление.

Ответ 3

Я последовал за youtube, который почти такой же, как и статья raywenderlich. Я только что забыл добавить фразу PEM pass. После добавления, как описано здесь, он работал:

stream_context_set_option($ctx, 'ssl', 'passphrase', 'MyPassPhrase');

Ответ 4

Это решение для Reywenderlich Apple Push Notification Services Учебник

 $deviceToken = ''; //Enter your token number
 // Put your private key passphrase here:
 $passphrase = '1234';//Enter ck.pem  password
 // Put your alert message here:
 $message = 'My first push notification!';