Apple Push Notification Service(APNs)証明書の有効期限が迫っていますか?心配無用です!APNs証明書の更新は非常に簡単なプロセスですので、さっそく始めましょう!
APNs証明書を更新する最初のステップは、証明書署名要求(CSR)を取得することです。Macを使用している場合は、Keychainを使用して新しいCSRを要求できます。Windowsユーザーの場合は、MMCの証明書スナップインを使用してCSRを生成できます。Linuxユーザーはopensslツールを使用できます。このチュートリアルでは、macOS上のKeychain Accessを使用してCSRを作成する方法について説明します。他のプラットフォームのCSRについては別のチュートリアルで説明します。
Keychain Accessを起動し、「証明書認証局から証明書を要求...」メニュー項目(以下のスクリーンショットで示されています)に進みます。
CSRを完了するためのいくつかの情報を求めるウィンドウが開きます。最初の項目はあなたのメールアドレスです。これはあなたのビジネスメールアドレス、Apple Developerアカウントで使用するメールアドレス、または個人的なメールアドレスで構いません。念のため、提供したアドレスでメールを受信できることを確認してください。
次に、証明書の共通名を指定します。デフォルトでは、共通名フィールドにあなたの名前が事前に入力されているのを見ることでしょう。APNsの目的に特化した名前を推奨します。例えば、あなたのアプリ「FooBar」のプッシュ通知を設定している場合、「FooBar APNs」といった名前が適しています。サンドボックス用の証明書を作成している場合は、「Sandbox」という言葉も末尾に追加することをお勧めします。共通名は、p12形式で証明書をエクスポートする際にKeychain Accessで見つける必要のあるプライベートキーの名前とも同じになります(AWS SNSに必要)。特定の名前を提供することで、プライベートキーの検索が容易になるだけでなく、証明書の目的の追跡もしやすくなります。
次のステップに進む準備ができる前に、「リクエストは:」で「ディスクに保存」が選択されていることを確認してください。「続行」をクリックし、後でAppleにアップロードするために使用するCSRを保存します。
CSRが作成されたら、Appleから新しいAPNs証明書をリクエストする準備が整います。Apple Developerアカウントにログインし、証明書に移動します。証明書ページから、新しい証明書を作成するための青いプラス記号をクリックします。
その後、どのタイプの証明書を作成したいかを尋ねられます。
サービスセクションまでスクロールダウンし、Apple Push Notification service SSLのオプションが表示されるまで続けます。
サンドボックスのみのプラットフォーム(つまり、Xcodeビルドからプッシュ通知をテストする場合)を作成する場合は、Sandboxオプションを選択してください。TestFlightでのベータテスト用ビルドやアプリの公開を計画している場合は、Sandbox & Productionを選択します。TestFlightおよび公開アプリでのプッシュ通知には、プロダクション環境が必要であることに注意してください。証明書のタイプを選択したら、ページの上部に戻って「続行」をクリックします。次に、APNサービスのためのApp IDを選択するよう求められます。
App IDを選択したら、「続行」をクリックしてCSRをアップロードします。
「ファイルを選択」をクリックし、先ほどKeychain Accessを使用して作成したCSRを選択します。「続行」をクリックすると、ダウンロード用のAPNs証明書が準備された新しい画面が表示されます(ちなみに...右上の青いボタンです)。
さて、これで1年間有効な新しいAPNs証明書が手に入りました。これだけで十分な方もいるかもしれませんが、証明書をPersonal Information Exchange(p12)形式でエクスポートしたい方は、その方法をこれから説明します。さらに、AWS SNSプッシュ通知プラットフォームでのAPNs証明書の更新方法についての追加のボーナス情報もあります。
APNs証明書をp12形式でエクスポートする
新しいAPNs証明書をp12形式でエクスポートするには、Keychain Accessで証明書ファイルを開き、その証明書に関連付けられたプライベートキーと共にエクスポートする必要があります。これを行うには、証明書をダウンロードしてKeychain Accessで開きます。次に、Keychain Accessの「キー」セクションに移動します。
CSRで指定した共通名と同じプライベートキーを選択します。プライベートキーの横にある矢印をクリックして展開します。そうすると、ちょうどインポートした正しい有効期限のAPNs証明書が表示されるはずです。APNs証明書を右クリックしてオプションを表示し、「エクスポート」を選択します。
保存パネルで、Personal Information Exchange(.p12)が選択されていることを確認します。証明書に名前を付けてファイルを保存します。オプションとしてパスワードを指定し、ディスクに証明書を保存するよう求められます。パスワードを設定することをお勧めしますが、これはオプションです。組織のセキュリティベストプラクティスに従ってください。
AWS SNSプッシュ通知プラットフォームでのAPNs証明書の更新
最後にしてボーナスステップは、AWS SNSプッシュ通知プラットフォームでのAPNs証明書を更新することです。この記事を書いている時点で、モバイルプッシュ通知は以下の地域でサポートされています:
- US East (N. Virginia)
- US West (N. California)
- US West (Oregon)
- Asia Pacific (Mumbai)
- Asia Pacific (Seoul)
- Asia Pacific (Singapore)
- Asia Pacific (Sydney)
- Asia Pacific (Tokyo)
- Europ (Frankfurt)
- Europe (Ireland)
- South America (São Paulo)
- AWS GovCloud (US-West)
参照: https://docs.aws.amazon.com/sns/latest/dg/sns-mobile-push-supported-regions.html
このチュートリアルでは、US East (N. Virginia)でのデモを行いますが、アプリケーションに適切かつ適用可能な地域を選択してください。AWS SNSに移動し、左側のメニューからプッシュ通知を選択します。次に、証明書の更新が必要なプラットフォームアプリケーションのリストから選択します。
詳細ページで「編集」を選択。
「詳細」の下にあるAppleの資格情報セクションが表示されます。認証方法として「証明書」を選択し、「ファイルを選択」をクリックして、先ほどの手順でエクスポートしたp12証明書をアップロードします。
証明書が正常にアップロードされると、証明書ファイル名の隣に緑色のチェックマークが表示されます。エクスポート時にオプションのパスワードを指定した場合は、証明書パスワードフィールドにそれを入力し、「ファイルから資格情報を読み込む」をクリックします。エクスポート時にパスワードを指定していない場合は、証明書パスワードフィールドを空白のままにして、「ファイルから資格情報を読み込む」をクリックします。APNs証明書のデータで証明書とプライベートキーのフィールドが埋められるのを確認できるはずです。データが読み込まれたら、ページの最下部にスクロールし、「変更を保存」をクリックします。これで、AWS SNSプラットフォームからプッシュ通知を送信する準備が整いました!
スタートアップ向けアプリ開発を加速するためのフレームワーク
Kenneth Hough
背景
私は2020年3月にKeyQを創設しました。これは、革新的で意味のあるクラウドソリューションを提供することで、ビジネスが次の成功のレベルを達成するのを支援するというビジョンを持っています。その設立以来、私はいくつかの企業、非営利団体、大学と共に、ビジネスプロセスを合理化しコストを削減するのに役立つクラウドアプリケーションの設計と構築に取り組んできました。
KeyQに入る前は、アラバマ大学バーミンガム校(UAB)の肺、アレルギーおよび集中治療医学部で医学研究者でした。また、UABではJessy Deshane, PhDとVictor Thannickal, MDの指導の下、私の博士論文に取り組みました。UABでの博士研究中、私は「オミクス」およびビッグデータに触れ、クラウドでのデータ駆動型分析プラットフォームを開発するというキャリア選択に影響を与えました。
また、生化学を専攻したWorcester Polytechnic Institute(WPI)での学部教育にも大きな感謝を述べたいと思います。WPIのモットーは「Lehr und Kunst」で、大まかに「理論と実践」または「学習と熟練した芸術」に翻訳されます。WPIはこの教育法を真に大切にし、教育スタイルとクラスサイズによってそれが見て取れます。WPIでの学習経験はユニークであり、学び、実践し、応用することができる私を形作るのに大きく貢献しました。
個人的な興味
革新的な技術を学び、新しいことに挑戦することが大好きです。興味の範囲は広く、サーバーレスアーキテクチャ、機械学習、人工知能、バイオインフォマティクス、医療情報学、金融技術などが含まれます。また、2021年のCFAレベル1試験に向けて取り組んでいます。その他の興味や趣味には旅行、ロッククライミング、ラペリング、洞窟探検、キャンプ、園芸などがあります!