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
- SChannel (tylko Windows)
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 -nokeysutwórz plik klucza prywatnego
openssl pkcs12 -in INFILE.p12 -out OUTFILE.key -nodes -nocertsGdy 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;
