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/
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?
Sie den Schlüssel exportieren nicht mit den Zertifikat? Das ist normalerweise das erste Problem –
Mögliches Duplikat von ["Verify error: num = 20" bei Verbindung mit gateway.sandbox.push.apple.com] (http://stackoverflow.com/q/23343910). – jww