17

Ich versuche mit PyAPNS Push-Benachrichtigungen an eine iPhone App zu senden. Wir haben den Prozess durchlaufen, um das Zertifikat vom Apple-Entwicklungszentrum zu erhalten, was gut funktioniert. Wir haben jedoch verschiedene Tutorials zum Zusammenstellen des Zertifikats und des privaten Schlüssels in einer einzelnen .pem-Datei ausgeführt. Bei allen Versuchen versucht die Verbindung mit dem APNS-Server mithilfe von OpenSSL von unserem Webserver mithilfe des resultierenden Zertifikats herzustellen dieser Fehler:Verbindung mit APNS nicht möglich: Rückgabecode 20 (lokales Ausstellerzertifikat kann nicht abgerufen werden)

$ openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert apns.pem 
CONNECTED(00000003) 
depth=1 C = US, O = "Entrust, Inc.", OU = www.entrust.net/rpa is incorporated by reference, OU = "(c) 2009 Entrust, Inc.", CN = Entrust Certification Authority - L1C 
verify error:num=20:unable to get local issuer certificate 
verify return:0 
[...certificate chain, server certificate, etc.] 

manchmal sind wir in der Lage, etwas am Ende all dies und die Verbindung wird nicht geschlossen, bis wir Enter drücken, manchmal nicht (es schließt sofort), aber selbst wenn wir scheinen eingeben Wenn eine Verbindung besteht, schlägt PyAPNS immer fehl, wenn wir versuchen, eine Push-Benachrichtigung zu senden, die den Fehler "Fehler 500: 'Verbindung zum APNS-Server konnte nicht hergestellt werden.'", was ich nur annehmen kann, aus dem gleichen Grund wie die " nicht in der Lage, ein lokales Ausstellerzertifikat zu erhalten "- obwohl ich keine Ahnung habe, aus welchem ​​Grund das sein könnte.

Die Tutorials haben wir folgenden Angaben enthalten:

http://blog.serverdensity.com/how-to-build-an-apple-push-notification-provider-server-tutorial/

http://www.raywenderlich.com/3443/apple-push-notification-services-tutorial-part-12

http://www.nasoni.net/2010/12/02/apns-client-development-certificate/

http://thebirdytoldmeso.com/%28S%28l131v3jmvpdh5255u1jayp20%29%29/userActions/thread/Question.aspx?id=10302792

Ja, wir das Passwort aus dem privaten Schlüssel und das Entfernen wurden fragt nicht danach, wenn wir versuchen, mitzuarbeiten Verbindung mit OpenSSL, so dass dieser Teil vermutlich in Ordnung ist.

Wir haben keine Ahnung, was schief läuft. Unglaublich, all diese Tutorials (und Apple, anscheinend) nehmen an, dass Sie einen Mac verwenden, während ich auf Windows entwickle und der Server (an dem ich gerade arbeite) Ubuntu ist; Mein Kollege, der auf einem Mac arbeitet, hat verschiedene Präfixe der ersten Schritte gemacht, bevor er die resultierenden Dateien an mich geschickt hat, um sie auf den Server hochzuladen und die letzten Schritte durchzuführen. Könnte das irgendwie damit zu tun haben? Oder gibt es einen Schritt des notwendigen Server-Setups, das überall weggelassen wird?

+0

Sie den Schlüssel exportieren nicht mit den Zertifikat? Das ist normalerweise das erste Problem –

+0

Mögliches Duplikat von ["Verify error: num = 20" bei Verbindung mit gateway.sandbox.push.apple.com] (http://stackoverflow.com/q/23343910). – jww

Antwort

1

Testen Sie Ihr Zertifikat mit dem SimplePush-PHP-Skript im Tutorial von raywendlich.com und dann können wir uns von dort fortbewegen. Manchmal scheint es, dass das Zertifikat in Ordnung ist, aber Apple ist verrückt nach all dem Zeug.

Fehler zwanzig Ich denke, bedeutet ein Problem mit Ihrem privaten Schlüssel und ich denke, es könnte ein Problem mit Ihrer Bereitstellungsdatei sowie entsprechend sein: http://www.raywenderlich.com/forums/viewtopic.php?f=2&t=380&start=100.

Stellen Sie sicher, dass Sie alles korrekt exportieren und gegebenenfalls widerrufen und neue Zertifikate erstellen. Hoffe, du kannst das gelöst bekommen! :)

+0

Warum die down vote? Es ist eine vollkommen akzeptable Antwort. –

+0

Das Testen des Zertifikats mit dem simplepush PHP Script im Tutorial von raywendlich.com funktioniert jetzt gut für mich. Vielleicht hast du recht, Apple ist verrückt. Ich sollte vorwärts gehen, um das Endergebnis zu sehen. – David

Verwandte Themen