Создание .pem файла из pushnotification с PHP под LINUX w - PullRequest
1 голос
/ 24 августа 2011

Я пытаюсь реализовать push-уведомления в своем приложении, для этого я попытался использовать easyApns, следую инструкциям и реализую классы на основе Linux.но, к сожалению, я ставлю на некоторые ошибки, связанные с сертификатами.

моя ошибка:

Предупреждение: stream_socket_client () [function.stream-socket-client]: сбой операции SSL с кодом1. Сообщения об ошибках OpenSSL: ошибка: 14094416: процедуры SSL: SSL3_READ_BYTES: сертификат оповещения sslv3 неизвестен в /var/www/html/apns/classes/class_APNS.php в строке 401

Предупреждение: stream_socket_client () [функция.stream-socket-client]: не удалось включить шифрование в /var/www/html/apns/classes/class_APNS.php в строке 401

Предупреждение: stream_socket_client () [function.stream-socket-client]: невозможно подключиться к ssl: //gateway.sandbox.push.apple.com: 2195 (неизвестная ошибка) в /var/www/html/apns/classes/class_APNS.php в строке 401

Примечание:Не удалось подключиться к APNS: 0.1) APNS :: __ construct -> Файл: apns.php (строка 50) 2) APNS :: _ fetchMessages -> Файл: class_APNS.php (строка 217) 3) APNS :: _ pushMessage -> Файл: class_APNS.php (строка 376)) 4) APNS :: _ triggerError -> Файл: class_APNS.php (строка 405) в /var/www/html/apns/classes/class_APNS.php в строке 509

я думаю, это ошибкасвязанный с сертификатом (файл .pem)

мой файл .pem был создан с использованием следующей команды

openssl pkcs12 -in apns-dev-cert.p12 -out apns-dev-cert.pem -nodes -clcerts

, и он был размещен на сервере (на основе linux) и ему предоставлены привилегии chmod 644

, если я сделаю что-нибудь еще .....

Ответы [ 4 ]

6 голосов
/ 27 сентября 2011

Можете ли вы подключиться к apns, используя свой сертификат?попробуйте следующую команду, чтобы проверить, что:

$ openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert YourSSLCertAndPrivateKey.pem -debug -showcerts -CAfile server-ca-cert.pem

Если команда завершается, вы не можете подключиться.Если он продолжает работать и позволяет вводить данные в сокет, вы успешно подключились.

1 голос
/ 27 марта 2012

Я обнаружил, что для работы команды необходимо:

  1. создать запрос на подпись сертификата (.csr) и загрузить его на портал Apple Dev
  2. скачайте предоставленную лицензию .p12
  3. , преобразуйте ее в файл pem, используя сертификат + закрытый ключ вашей машины
  4. , скачайте и установите сертификат из Entrust

ссылка:https://developer.apple.com/library/ios/#technotes/tn2265/_index.html

0 голосов
/ 03 июня 2016

Дважды проверьте, прежде чем создавать .pem, вы правильно экспортируете "2" предметов из цепочки для ключей:

Apple Development IOS Push Services + клавиша имени пользователя.

Затем экспортируйте 2 элемента

0 голосов
/ 19 марта 2012

У меня та же проблема.Загрузил файл .p12, затем $ openssl pkcs12 -in apns-dev-cert.p12 -out apns-dev-cert.pem -nodes -clcerts, затем с помощью команды Nilesh: $ openssl s_client -connect gateway.sandbox.push.apple.com: 2195 -cert YourSSLCertAndPrivateKey.pem -debug -showcerts -CAfile server-ca-cert.pem, затем я получаю эту ошибку

невозможно загрузить файл закрытого ключа сертификата клиента 140405386606400: ошибка: 0906D06C: процедуры PEM: PEM_read_bio:нет стартовой строки: pem_lib.c: 696: Ожидается: ЛЮБОЙ ЧАСТНЫЙ КЛЮЧ

спасибо

...