2009-10-28 11 views
8

Ich habe die Anweisungen unter How to build an Apple Push Notification provider server (tutorial) in einem Versuch, einen Push-Benachrichtigungsserver einzurichten.Apple Push Notification Service: Zertifikat Server Seite installieren?

Wenn ich versuche, mit dem folgenden PHP-Code

// 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); 

ich die folgenden Warnung erhalten verbinden

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

Basierend auf welche Informationen ich habe in der Lage gewesen, auf Google zu finden, die Problem scheint mein Zertifikat zu sein.

Ich erstelle meine CSR und PEM-Dateien in OS X (PEM-Dateien gemäß den Anweisungen im Tutorial). Sobald ich dev.pem erstellt habe, lade ich es zu meinem Hosting-Provider hoch und versuche, mein PHP-Skript auszuführen. Ist das der richtige Weg, das Zertifikat zu erstellen und zu "installieren"?

Ich habe keine Debugging-Ideen mehr. Jede Richtung wäre großartig.

Antwort

8

Pfad zu dev.pem war auf meinem Server falsch.

Die Anweisungen sind in der Tat der richtige Weg, um die .pem-Datei zu generieren. Einmal erstellt, kann es auf jedem Computer verwendet werden (nicht nur auf dem Computer, der es erzeugt hat).

+0

Haben Sie ein Problem wie Absolute und Relative Pfade gefunden? –

+0

Ich habe den Dateinamen meiner Live-.pem-Datei falsch geschrieben. -.- Habe es überblickt, bis ich diese Antwort sah, die mich "vorsichtig" anschaute. – James

1

Konnten Sie die gleiche .pem-Datei auf Ihrem Server verwenden? Und wie du gesagt hast ... auf jeder Maschine.

Ich habe dieses Tutorial folgen und ich konnte Nachrichten von meinem Computer senden (das war das Zertifikat wurde generiert), aber ich habe versucht, alle Dateien kopieren und führen Sie das Skript in einem anderen Computer und ich habe die gleichen Fehler, die Sie haben bekam.

Wie haben Sie getan, damit es in einer anderen Maschine funktioniert? Haben Sie die .pem-Datei installiert? Irgendeine spezielle Konfiguration?

Prost

+0

Bis zur "Installation" der .pem-Datei musste ich lediglich in ein lokales Verzeichnis auf meinem Server kopieren. Das Problem war, dass ich mein PHP-Skript in ein Cron-Verzeichnis verschoben hatte, in dem ich meine Cron-Jobs aufbewahrte und nicht über die .pem-Datei kopieren konnte. Sobald ich die .pem-Datei verschoben hatte, war alles in Ordnung. Mein Hosting-Provider betreibt Linux, daher sollte die .pem-Datei für jede Plattform gut sein. –

+0

Dateiberechtigungen könnten möglicherweise ein Problem darstellen. Mein .pem ist auf 644 gesetzt. –

+0

@Jason George Ich änderte die Dateiberechtigungen, aber der Fehler änderte sich nicht. Ich habe fast das gleiche getan, was Sie gesagt haben. Ich habe meine Maschine konfiguriert, getestet und alles hat funktioniert. Also, ich habe versucht, alles zu kopieren und einen anderen Mac, den ich habe, aber in dieser Maschine bekomme ich diesen Fehler. – vfn

Verwandte Themen