Apple Push Notifications - Zertifikatsbasierte Verbindungen zu APNs (Teil 4/4)

· Funktionen

Im letzten Blogbeitrag zu Apple Push Notifications zeige ich dir, wie du Zertifikate zur Authentifizierung gegen Apple-Push-Server verwendest.

Melde dich zuerst in deinem Developer Account an und erstelle ein neues Zertifikat für den Apple Push Notification service

Sobald du dein Zertifikat heruntergeladen hast, erlaubt der sgcWebSockets-HTTP/2-Client die Verwendung von 2 Security-IOHandlern (nur für Windows, für andere Personalities wird nur OpenSSL unterstützt).

OpenSSL 

Wenn du OpenSSL nutzt, musst du die OpenSSL-Bibliotheken mit deiner Anwendung ausliefern. Bevor du das Zertifikat mit dem TsgcHTTP2Client setzt, muss dieses Zertifikat zunächst ins PEM-Format konvertiert werden, da OpenSSL keinen direkten Import von P12-Zertifikaten erlaubt.

Verwende die folgenden Befehle, um ein einzelnes P12-Zertifikat in ein PEM-formatiertes Zertifikat und eine Private-Key-Datei zu konvertieren

PEM-Zertifikatsdatei erstellen

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


Private-Key-Datei erstellen

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


Sobald du Zertifikat und Private Key im PEM-Format hast, kannst du den TsgcHTTP2Client wie folgt konfigurieren.

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 

Wenn du SChannel nutzt, musst du keine Bibliotheken ausliefern, und das von Apple heruntergeladene Zertifikat kann direkt importiert werden, ohne vorherige Konvertierung ins PEM-Format.

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