Apple Push Notifications - Connessioni ad APNs basate su certificati (Parte 4/4)

· Funzionalità

Nell'ultimo articolo della serie sulle Apple Push Notifications mostro come usare i certificati per autenticarsi sui server Apple Push.

Per prima cosa entra nel tuo developer account e crea un nuovo certificato per il servizio Apple Push Notification.

Dopo aver scaricato il certificato, il client HTTP/2 di sgcWebSockets permette di usare 2 IOHandler di sicurezza (solo per Windows; per le altre personality è supportato solo OpenSSL).

OpenSSL 

Se usi OpenSSL, devi distribuire le librerie OpenSSL insieme all'applicazione. Prima di impostare il certificato sul TsgcHTTP2Client, occorre convertire il certificato in formato PEM perché OpenSSL non consente di importare direttamente certificati P12.

Usa i seguenti comandi per convertire un singolo certificato P12 in un certificato in formato PEM e in un file di chiave privata.

Crea il file di certificato PEM

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


Crea il file di chiave privata

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


Una volta ottenuti certificato e chiave privata in formato PEM, puoi configurare il TsgcHTTP2Client come segue.

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 

Se usi SChannel non è necessario distribuire alcuna libreria e il certificato scaricato da Apple può essere importato direttamente, senza una preventiva conversione in 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;