Apple Push Notifications — połączenia z APNs oparte na certyfikatach (część 4/4)

· Funkcje

W ostatnim wpisie o Apple Push Notifications pokazuję, jak używać certyfikatów do uwierzytelniania wobec serwerów Apple Push.

Najpierw zaloguj się do konta deweloperskiego i utwórz nowy certyfikat dla usługi Apple Push Notification

Po pobraniu certyfikatu klient HTTP/2 sgcWebSockets pozwala użyć 2 IOHandlerów bezpieczeństwa (tylko dla Windows; na innych platformach obsługiwany jest wyłącznie openSSL).

OpenSSL 

Jeśli używasz openSSL, musisz wdrożyć biblioteki openSSL razem z aplikacją. Zanim ustawisz certyfikat w TsgcHTTP2Client, musisz najpierw przekonwertować go do formatu PEM, ponieważ openSSL nie pozwala bezpośrednio importować certyfikatów P12.

Aby przekonwertować pojedynczy certyfikat P12 na certyfikat w formacie PEM oraz plik klucza prywatnego, użyj poniższych poleceń

utwórz plik certyfikatu PEM

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


utwórz plik klucza prywatnego

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


Gdy masz już certyfikat i klucz prywatny w formacie PEM, skonfiguruj TsgcHTTP2Client jak poniżej.

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 

W przypadku SChannel nie musisz wdrażać żadnych bibliotek, a certyfikat pobrany z Apple możesz zaimportować bezpośrednio, bez wcześniejszej konwersji do formatu 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;