Push-уведомление iPhone не может подключиться к серверу SSL - PullRequest
3 голосов
/ 18 сентября 2009

Я следовал инструкциям по адресу:

Как создать сервер поставщика push-уведомлений Apple Когда я запускаю скрипт php на моем MacOSX или в Windows, используя рабочий стол Parallel, скрипт работает. Но как только я запускаю его на своем хостинге, я получаю сообщение:

Warning: stream_socket_client() [function.stream-socket-client]: unable to connect to ssl://gateway.sandbox.push.apple.com:2195 (Connection timed out) in provider.php on line 23
Failed to connect 110 Connection timed out 

Это имеет отношение к сертификатам? Если так, как я могу сделать сертификат, который мог бы работать на компьютере, на котором расположен мой хостинг.

Ответы [ 3 ]

4 голосов
/ 24 февраля 2010

Ваш хостинг-провайдер, вероятно, не разрешает исходящие подключения к портам 2195 и 2196. У большинства провайдеров виртуального хостинга эти порты не открыты. Возможно, вам понадобится получить VPS или вы также можете попробовать UrbanAirship, который обеспечивает интеграцию с Apple Notification Service и бесплатен для определенного лимита в месяц.

1 голос
/ 29 июля 2010

Я обнаружил, что самым простым и дешевым решением было запросить выделенный IP у вашей хостинговой компании. На Blue Host это было $ 2,50 в месяц. С этим выделенным IP-адресом они были готовы открыть порты 2195 и 2196.

1 голос
/ 18 сентября 2009

Да, вам нужен сертификат. Это объясняется в документации Apple. Один улов, вам, вероятно, потребуется преобразовать сертификат в формат .pem. Сертификат .pem должен включать как сертификат, так и закрытый ключ RSA.

Вот хороший сайт для чтения: http://www.macoscoders.com/2009/05/17/iphone-apple-push-notification-service-apns/

Мой пем выглядит так:

Bag Attributes
    friendlyName: Apple Development Push Services: <my data>
    localKeyID: <my local key in hexascii> 
subject=/UID=com.my.push.sandbox1/CN=Apple Development Push Services: <my data>/C=US
issuer=/C=US/O=Apple Inc./OU=Apple Worldwide Developer Relations/CN=Apple Worldwide Developer Relations Certification Authority
-----BEGIN CERTIFICATE-----
<my certificate data omitted>
-----END CERTIFICATE-----
-----BEGIN RSA PRIVATE KEY-----
<my key data omitted>
-----END RSA PRIVATE KEY-----
...