17

Estoy tratando de usar PyAPNS para enviar notificaciones automáticas a una aplicación de iPhone. Hemos pasado por el proceso de obtención del certificado del centro de desarrollo de Apple, que funciona bien; sin embargo, hemos seguido varios tutoriales diferentes sobre cómo juntar el certificado y la clave privada en un único archivo .pem, y para todos ellos, intentar conectarnos al servidor APNS utilizando OpenSSL desde nuestro servidor web utilizando el certificado resultante. este error:No se puede conectar a APNS: código de retorno 20 (no se puede obtener el certificado de emisor local)

$ 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.] 

veces somos capaces de escribir algo al final de todo esto y la conexión no se cierra hasta que presione eNTRAR, a veces no (se cierra inmediatamente), pero incluso cuando nos parece tener una conexión, PyAPNS siempre falla cuando tratamos de enviar una notificación de inserción, dando el error "Error 500: 'La conexión al servidor APNS no se pudo hacer.'", lo que solo puedo suponer es por la misma razón que el " no puede obtener un certificado de emisor local ", aunque no tengo idea de qué razón podría ser.

Los tutoriales que hemos estado siguiendo incluyen:

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

Sí, hemos estado eliminación de la contraseña de la clave privada y no lo pide cuando tratamos de co néctese con OpenSSL, así que presumiblemente esa parte está funcionando bien.

No tenemos idea de lo que está pasando mal. Enorecentemente, todos estos tutoriales (y Apple, aparentemente) dan por supuesto que estás usando una Mac, mientras yo desarrollo en Windows y el servidor (en el que estoy trabajando) es Ubuntu; mi compañero de trabajo que está en una Mac ha estado haciendo varios prefijos de los primeros pasos antes de enviarme los archivos resultantes para subirlos al servidor y realizar los últimos pasos. ¿Podría eso tener algo que ver con eso, de alguna manera? ¿O hay un paso de la configuración necesaria del servidor que se omite en todas partes?

+0

ha exportado la tecla con el ¿certificado? Ese suele ser el primer problema –

+0

Posible duplicado de ["verificar error: num = 20" cuando se conecta a gateway.sandbox.push.apple.com] (http://stackoverflow.com/q/23343910). – jww

Respuesta

1

Pon a prueba tu certificado con el script simplepush php en el tutorial de raywenderlich.com y luego podemos avanzar desde allí. A veces parece que el certificado está bien, pero Apple está loco por todas esas cosas.

Error twenty Creo que significa un problema con su clave privada y creo que también puede haber un problema con su archivo de aprovisionamiento de acuerdo con esto: http://www.raywenderlich.com/forums/viewtopic.php?f=2&t=380&start=100.

Asegúrese de que está exportando todo correctamente y, si es necesario, revoque y realice nuevos certificados. Espero que puedas resolver esto! :)

+0

¿Por qué votar abajo? Es una respuesta perfectamente aceptable. –

+0

Probar el certificado con el script simplepush php en el tutorial de raywenderlich.com funciona bien ahora. Tal vez tengas razón, la manzana es bastante quisquillosa. Debería avanzar para ver el resultado final. – David

Cuestiones relacionadas