2009-10-28 14 views
8

He seguido las instrucciones en How to build an Apple Push Notification provider server (tutorial) en un intento de configurar un servidor de notificaciones push.Apple Push Notification Service: Certificado de instalación del lado del servidor?

Cuando intento conectar con el siguiente código PHP

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

me sale el siguiente aviso

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

Sobre la base de lo que la información que he podido encontrar en Google, la problema parece ser mi certificado.

Estoy generando mis archivos csr y pem en OS X (archivos de pem según las instrucciones del tutorial). Una vez que he creado dev.pem, lo estoy cargando en mi proveedor de hosting y estoy intentando ejecutar mi script php. ¿Es esta la forma correcta de crear e "instalar" el certificado?

Me he quedado sin ideas de depuración. Cualquier dirección sería genial.

Respuesta

8

La ruta a dev.pem era incorrecta en mi servidor.

Las instrucciones son de hecho la forma correcta de generar el archivo .pem. Una vez creado, puede usarse en cualquier máquina (no solo en la máquina que la generó).

+0

¿Has encontrado algún problema como Rutas absolutas y relativas? –

+0

Escribí mal el nombre del archivo .pem en vivo. -.- Seguí pasando por alto hasta que vi esta respuesta que fue lo que me hizo mirarla "cuidadosamente". – James

1

¿Pudiste utilizar el mismo archivo .pem en tu servidor? Y como dijiste ... en cualquier máquina.

He seguido este tutorial y pude enviar mensajes desde mi máquina (la única donde se generó el certificado), pero he intentado copiar todos los archivos y ejecutar la secuencia de comandos en otra máquina y tengo los mismos errores que usted tiene.

¿Cómo lo has hecho para que funcione en otra máquina? ¿Has instalado el archivo .pem? Cualquier configuración especial?

Cheers

+0

En cuanto a "instalar" el archivo .pem, todo lo que tenía que hacer era copiarlo en un directorio local en mi servidor. El problema era que había movido mi script php a un directorio cron donde tengo mis trabajos cron y no pude copiar el archivo .pem. Una vez que moví el archivo .pem todo estaba bien. Mi proveedor de hosting ejecuta Linux, por lo que el archivo .pem debería ser bueno para cualquier plataforma. –

+0

Los permisos de archivos podrían ser un problema. Mi .pem está configurado en 644. –

+0

@Jason George Cambié los permisos de archivo pero el error no cambió. He hecho casi lo mismo que usted ha dicho. He configurado mi máquina, probado y todo ha estado funcionando. Entonces, intenté copiar todo y poner otro mac que tengo, pero en esta máquina estoy obteniendo este error. – vfn

Cuestiones relacionadas