Apple Push Notifications - 証明書ベースの APNs 接続(Part 4/4)

· 機能

Apple Push Notifications に関する最新の記事として、証明書を使用して Apple Push サーバーに対して認証する方法を紹介します。

まず開発者アカウントに入り、Apple Push Notification サービス用の新しい証明書を作成します。

証明書をダウンロードしたら、sgcWebSockets の HTTP/2 クライアントで 2 つのセキュリティ IOHandler を使用できます(Windows のみ、他のプラットフォームでは OpenSSL のみサポート)。

OpenSSL

OpenSSL を使用する場合は、OpenSSL ライブラリをアプリケーションと一緒にデプロイする必要があります。TsgcHTTP2Client に証明書を設定する前に、OpenSSL は P12 証明書を直接インポートできないため、まず証明書を PEM 形式に変換する必要があります。

単一の P12 証明書を PEM 形式の証明書と秘密鍵ファイルに変換するには、以下のコマンドを使用します。

PEM 証明書ファイルを作成する

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


秘密鍵ファイルを作成する

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


PEM 形式の証明書と秘密鍵が用意できたら、TsgcHTTP2Client を以下のように設定できます。

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

SChannel を使用する場合、ライブラリをデプロイする必要はなく、Apple からダウンロードした証明書を 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;