Apple Push Notifications - Conexiones basadas en certificados a APNs (Parte 4/4)

· Características

En la última entrada del blog sobre Apple Push Notifications, te muestro cómo usar certificados para autenticarte contra los servidores de Apple Push.

Primero entra en tu cuenta de desarrollador y crea un nuevo certificado para el servicio Apple Push Notification

Una vez que hayas descargado tu certificado, el cliente HTTP/2 de sgcWebSockets permite usar 2 IOHandlers de seguridad (solo en Windows; para otras personalities solo se soporta openSSL).

OpenSSL 

Si usas openSSL, debes desplegar las librerías openSSL con tu aplicación. Antes de establecer el certificado con TsgcHTTP2Client, primero debes convertir el certificado a formato PEM, porque openSSL no permite importar certificados P12 directamente.

Usa los siguientes comandos para convertir un único certificado P12 a un certificado en formato PEM y un archivo de clave privada

crear el archivo de certificado PEM

 openssl pkcs12 -in INFILE.p12 -out OUTFILE.crt -nokeys


Crear archivo de clave privada

 openssl pkcs12 -in INFILE.p12 -out OUTFILE.key -nodes -nocerts


Una vez que tengas tu certificado y clave privada en formato PEM, puedes configurar TsgcHTTP2Client así.

oHTTP := TsgcHTTP2Client.Create(nil);
oHTTP.TLSOptions.IOHandler := iohOpenSSL;
oHTTP.TLSOptions.CertFile := 'certificate_file.pem';
oHTTP.TLSOptions.KeyFile := 'private_key.pem';
oHTTP.TLSOptions.Password := 'certificate password';
oHTTP.TLSOptions.Version := tls1_2; 

SChannel 

Si usas SChannel no es necesario desplegar ninguna librería, y el certificado descargado de Apple puede importarse directamente sin necesidad de una conversión previa a formato PEM.

oHTTP := TsgcHTTP2Client.Create(nil);
oHTTP.TLSOptions.IOHandler := iohSChannel;
oHTTP.TLSOptions.CertFile := 'certificate_file.p12';
oHTTP.TLSOptions.Password := 'certificate password';
oHTTP.TLSOptions.Version := tls1_2;