2009-10-28 17 views
8

Postępowałem zgodnie z instrukcjami pod numerem How to build an Apple Push Notification provider server (tutorial), próbując skonfigurować serwer powiadomień Push.Usługa powiadomień Apple Push: po stronie serwera instalacji certyfikatu?

Gdy próbuję się połączyć z następującego kodu 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); 

uzyskać następujące ostrzeżenie

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

oparciu o jakie informacje udało mi się znaleźć w Google, Problem wydaje się być moim certyfikatem.

Generuję pliki csr i pem w systemie OS X (pliki pem zgodnie z instrukcjami w samouczku). Po utworzeniu dev.pem przesyłam go do mojego dostawcy hostingu i próbuję uruchomić mój skrypt php. Czy jest to właściwy sposób tworzenia i "instalowania" certyfikatu?

Brakuje mi debugowania pomysłów. Każdy kierunek byłby świetny.

Odpowiedz

8

Ścieżka do dev.pem była niepoprawna na moim serwerze.

Instrukcje są poprawnym sposobem wygenerowania pliku .pem. Raz utworzony może być użyty na dowolnej maszynie (nie tylko na komputerze, który ją wygenerował).

+0

Czy napotkali Państwo jakiś problem, taki jak bezwzględne i względne ścieżki? –

+0

Podałem błędnie nazwę pliku mojego pliku .pem na żywo. -.- Przechyliłem go, dopóki nie zobaczyłem tej odpowiedzi, co sprawiło, że spojrzałem na nią "ostrożnie". – James

1

Czy byłeś w stanie użyć tego samego pliku .pem na swoim serwerze? I jak powiedziałeś ... na dowolnej maszynie.

Mam wykonać ten samouczek i mogę wysyłać wiadomości z mojego komputera (ten był generowany certyfikat), ale próbowałem skopiować wszystkie pliki i uruchomić skrypt w innym komputerze i mam te same błędy, które masz dostał.

Jak to się stało, że działa na innym komputerze? Czy zainstalowałeś plik .pem? Dowolna specjalna konfiguracja?

Pozdrowienia

+0

Jeśli chodzi o "instalowanie" pliku .pem, wszystko, co musiałem zrobić, to skopiować go do lokalnego katalogu na moim serwerze. Problem polegał na tym, że przeniosłem skrypt php do katalogu cron, w którym trzymam moje zadania cron, i nie udało się skopiować pliku .pem. Po przeniesieniu pliku .pem wszystko było w porządku. Mój dostawca hostingu używa Linuksa, więc plik .pem powinien być dobry dla każdej platformy. –

+0

Uprawnienia do plików mogą potencjalnie stanowić problem. Mój .pem jest ustawiony na 644. –

+0

@Jason George Zmieniłem uprawnienia do plików, ale błąd się nie zmienił. Zrobiłem prawie to samo, co powiedziałeś. Mam skonfigurowaną maszynę, przetestowałem i wszystko działa. Tak, próbowałem skopiować wszystko i umieścić w innym mac, że mam, ale w tym komputerze otrzymuję ten błąd. – vfn

Powiązane problemy