2009-10-28 29 views
8

Ho seguito le istruzioni allo How to build an Apple Push Notification provider server (tutorial) nel tentativo di configurare un server di notifica push.Servizio di notifica push Apple: lato server di installazione certificato?

Quando tento di collegarmi con il seguente codice 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); 

ottengo il seguente avviso

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

Sulla base di quali informazioni sono stato in grado di trovare su Google, il il problema sembra essere il mio certificato.

Sto generando i miei file csr e pem in OS X (file pem secondo le istruzioni del tutorial). Una volta creato dev.pem, lo sto caricando sul mio provider di hosting e sto tentando di eseguire il mio script php. È questo il modo corretto di creare e "installare" il certificato?

Ho esaurito le idee di debug. Qualsiasi direzione sarebbe grandiosa.

risposta

8

Il percorso per dev.pem non era corretto sul mio server.

Le istruzioni rappresentano in effetti il ​​modo corretto di generare il file .pem. Una volta creato può essere utilizzato su qualsiasi macchina (non solo sulla macchina che lo ha generato).

+0

Hai riscontrato problemi come percorsi assoluti e relativi? –

+0

Ho scritto male il nome file del mio file .pem live. -.- Continuava a guardarlo fino a quando ho visto questa risposta che è ciò che mi ha fatto "attentamente" guardarlo. – James

1

Sei riuscito a utilizzare lo stesso file .pem nel tuo server? E come hai detto ... su qualsiasi macchina.

Ho seguito questo tutorial e ho potuto inviare messaggi dalla mia macchina (uno era il certificato è stato generato) ma ho provato a copiare tutti i file ed eseguire lo script in un'altra macchina e ho gli stessi errori che hai avuto.

Come hai fatto a farlo funzionare su un'altra macchina? Hai installato il file .pem? Qualche configurazione speciale?

Cheers

+0

Per quanto riguarda "l'installazione" del file .pem, tutto ciò che dovevo fare era copiarlo in una directory locale sul mio server. Il problema era che avevo spostato il mio script php in una directory di cron dove tengo i miei lavori cron e non riesco a copiare sul file .pem. Una volta spostato il file .pem tutto andava bene. Il mio hosting provider esegue linux, quindi il file .pem dovrebbe essere buono per qualsiasi piattaforma. –

+0

Le autorizzazioni per i file potrebbero essere un problema. My .pem è impostato su 644. –

+0

@Jason George Ho modificato le autorizzazioni dei file ma l'errore non è cambiato. Ho fatto quasi la stessa cosa che hai detto. Ho configurato la mia macchina, testato e tutto ha funzionato. Quindi, ho provato a copiare tutto e mettere in un altro Mac che ho, ma in questa macchina sto ricevendo questo errore. – vfn

Problemi correlati