Sto tentando di utilizzare PyAPNS per inviare notifiche push a un'app per iPhone. Abbiamo attraversato il processo per ottenere il certificato dal centro di sviluppo di Apple, che funziona bene; tuttavia, abbiamo seguito diverse esercitazioni su come riunire il certificato e la chiave privata in un singolo file .pem, e per tutti loro, il tentativo di connettersi al server APNS utilizzando OpenSSL dal nostro server web utilizzando il certificato risultante dà questo errore:Impossibile connettersi a APNS: codice di ritorno 20 (impossibile ottenere il certificato emittente locale)
$ 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.]
a volte siamo in grado di digitare qualcosa alla fine di tutto questo e la connessione non si chiude fino a quando non si preme Invio, a volte no (si chiude immediatamente), ma anche quando ci sembrano avere una connessione, PyAPNS fallisce sempre quando proviamo a inviare una notifica push, dando l'errore "Fault 500: 'Impossibile stabilire la connessione al server APNS.'", che posso solo assumere per lo stesso motivo del " impossibile ottenere il certificato di emittente locale "- anche se non ho idea di quale possa essere la ragione.
I tutorial abbiamo seguito includono:
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/
Sì, ci sono stati rimozione della password dalla chiave privata e non lo chiede quando proviamo a co nnect with OpenSSL, quindi presumibilmente quella parte funziona correttamente.
Non abbiamo idea di cosa stia succedendo. Infuriatamente, tutti questi tutorial (e Apple, a quanto pare) prendono come un dato di fatto che stai usando un Mac, mentre sto sviluppando su Windows e il server (su cui sto lavorando) è Ubuntu; il mio collega che è su un Mac ha eseguito vari prefissi dei primi passaggi prima di inviare i file risultanti a me per caricarli sul server ed eseguire i passaggi finali. Potrebbe avere qualcosa a che fare con esso, in qualche modo? O c'è un passaggio della necessaria configurazione del server che viene omesso ovunque?
avete esportato la chiave con la certificato? Di solito è il primo problema –
Possibile duplicato di ["verifica errore: num = 20" durante la connessione a gateway.sandbox.push.apple.com] (http://stackoverflow.com/q/23343910). – jww