Служба Push-уведомлений Apple: Установка сертификата На Стороне Сервера?
Я следовал инструкциям в Как создать сервер поставщика push-уведомлений Apple (учебное пособие) в попытке настроить сервер push-уведомлений.
Когда я пытаюсь подключиться к следующему PHP-коду
// connect to apns server
$strAPNSUrl = 'ssl://gateway.sandbox.push.apple.com:2195';
$strAPNSCert = 'dev.pem';
// generate stream
$oStreamContext = stream_context_create();
stream_context_set_option($oStreamContext, 'ssl', 'local_cert', $strAPNSCert);
// create the socket connection
$oAPNS = stream_socket_client($strAPNSUrl, $iError, $strError, 2, STREAM_CLIENT_CONNECT, $oStreamContext);
Я получаю следующее предупреждение
Warning: stream_socket_client() [function.stream-socket-client]: SSL operation failed with code 1. OpenSSL Error messages: error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert
Судя по информации, которую я смог найти в Google, проблема, похоже, в моем сертификате.
Я создаю свои файлы csr и pem в OS X (файлы pem на инструкции в учебнике). Как только я создам dev.pem, я загружаю его своему хостинг-провайдеру и пытаюсь запустить свой php-скрипт. Является ли это правильным способом создания и "установки" сертификата?
У меня закончились идеи для отладки. Любое направление было бы здорово.
2 answers
Путь к dev.pem
на моем сервере был неверным.
Инструкции действительно являются правильным способом создания файла .pem. После создания его можно использовать на любой машине (а не только на машине, которая его сгенерировала).
Смогли ли вы использовать тот же файл .pem на своем сервере? И, как вы сказали... на любой машине.
Я следовал этому руководству и мог отправлять сообщения со своей машины (на которой был сгенерирован сертификат), но я попытался скопировать все файлы и запустить скрипт на другой машине, и у меня возникли те же ошибки, что и у вас.
Как вы сделали, чтобы он работал на другой машине? Вы установили файл .pem? Какая-нибудь специальная конфигурация?
Приветствия