【iOS】AWS SNSに登録してあるPush通知の証明書を更新する

Appleから `Action Needed: Apple Push Services Certificate Expires in 30 Days` のメールが届き、今年もPush通知の証明書(ApplePushServices)更新の時期がやってきました。
私の環境では、iOSのPush通知にAWSのSNSを使用しているので、SNSに登録している証明書を更新し直す必要があります。
１年に一度の事なので記録しておかないと忘れてしまうので記事に残しておきたいと思います。
また、少しでも誰かの参考になると幸いです。

# 1. 新しい証明書を作成する
## 1-1 証明書の作成を行う
初めに[AppleDeveloperサイト](https://developer.apple.com/account/ios/certificate/)にアクセスし、右上の＋ボタンから証明書の作成を行います。<img width="979" alt="Screen Shot 2018-08-27 at 12.34.22.png" src="https://qiita-image-store.s3.amazonaws.com/0/74248/19d8d6aa-78de-ac3f-4f17-66f46ec433d5.png">

## 1-2 証明書の種類を選択する
1-1で+ボタンを押すと証明書を選択する画面が表示されます。
今回はPush通知の証明書を更新するので　`Prodction項目` にある `Apple Push Notification service (SandBox & Production)` を選択します。
(テスト環境の証明書を更新する場合は、Development項目にある、 `Apple Push Notification service SSL (Sandbox)` を選択します)<img width="735" alt="Screen Shot 2018-08-27 at 12.35.00.png" src="https://qiita-image-store.s3.amazonaws.com/0/74248/a1c51a51-358f-58ac-f69b-5cf71dc879d8.png">

## 1-3 AppIDを選択する
ここでは証明書を更新するAppIDを選択します。
AppIDはAppleから届いたメールに記載されているので、分からない場合はメールを確認してみて下さい。
<img width="735" alt="Screen Shot 2018-08-27 at 12.35.48.png" src="https://qiita-image-store.s3.amazonaws.com/0/74248/4f75cecb-308a-3940-aa8d-e85132cb25d2.png">

## 1-4 CSRファイルを作成/登録する
ここではCSRファイルの作成/登録を行います。
まず、CSRファイルの作成から行います。
AppleDeveloperはそのままで、Keychain Accessを起動し、 `Keychain Access > Certificate Assistant > Request a Certificate from a Certificate Authority` を選択します。
<img width="689" alt="Screen Shot 2018-08-27 at 15.15.41.png" src="https://qiita-image-store.s3.amazonaws.com/0/74248/0dfa6d69-1c27-1c4a-afbd-72852ac2a126.png">
その後、証明書情報を入力する画面が表示されるので、1-3で選択したAppIDの登録に使用した情報を入力します。
<img width="618" alt="Screen Shot 2018-08-27 at 12.41.07.png" src="https://qiita-image-store.s3.amazonaws.com/0/74248/4d888dac-c076-b23f-b5b3-b62e24988b51.png">
Request isはSaved to diskを選択し、Continueを押すと `.certSigningRequest` ファイルが作成されます。
そのファイルを適当な場所に保存し、AppleDeveloperに作成した `.certSigningRequest` ファイルをアップロードします。
<img width="731" alt="Screen Shot 2018-08-27 at 12.44.14.png" src="https://qiita-image-store.s3.amazonaws.com/0/74248/2a08f79d-652e-ddb9-83f6-47f393a10ac3.png">

## 1-5 証明書をダウンロードする
無事CSRファイルの登録が終わるとApplePushServicesの証明書がダウンロード出来るのでダウンロードし、保存しておいて下さい。
<img width="737" alt="Screen Shot 2018-08-27 at 12.44.40.png" src="https://qiita-image-store.s3.amazonaws.com/0/74248/973b5204-68e6-1e5a-a8c7-b375817c383b.png">

ここまでAppleDeveloper側の作業は終了です。
次にAWSのSNS側の設定を行います。

# 2. AWS SNSに登録している証明書を更新する
## 2-1 更新するSNS Applicationを選択する
AWSアカウントにログインし、SNS -> Applicationsを開きます。
<img width="1225" alt="Screen Shot 2018-08-27 at 15.43.35.png" src="https://qiita-image-store.s3.amazonaws.com/0/74248/e7071da1-473d-db14-e927-9b3941ec8659.png">

証明書を更新するApplicationにチェックを入れ、右上にあるActionsから`Update credentials`を選択します。
(Applicationにチェックを入れないとUpdate creadentialsが選択出来ないので気をつけて下さい)
<img width="970" alt="Screen Shot 2018-08-27 at 12.52.51.png" src="https://qiita-image-store.s3.amazonaws.com/0/74248/5ce48448-c3b8-cc8e-b74d-391225d6d9dd.png">

Update credentialsを選択するとp12ファイルを選択する画面が表示されるので、次にp12ファイルを作成します。
<img width="897" alt="Screen Shot 2018-08-27 at 12.55.24.png" src="https://qiita-image-store.s3.amazonaws.com/0/74248/5a3df588-694d-a87f-720c-82c5153a85be.png">

## 2-2 p12ファイルを作成する
2-1で登録するのに必要なp12ファイルの作成を行います。
Keychain Accessを起動し、1-5でダウンロードした証明書を右クリックし、Exportを行います。(KeychainにDLした証明書が見当たらない場合はDLしたファイルをダブルクリックで開くとKeychainに入って来ます)
<img width="913" alt="Screen Shot 2018-08-27 at 15.59.20.png" src="https://qiita-image-store.s3.amazonaws.com/0/74248/6ccaae0c-6301-3003-db97-adde4300c983.png">
Exportを作成するときにPWを設定する必要があるので適当なPWを入力して下さい。
また、ここで設定したPWは後で使用するので忘れないようにして下さい。
<img width="445" alt="Screen Shot 2018-08-27 at 15.59.42.png" src="https://qiita-image-store.s3.amazonaws.com/0/74248/ee555fc6-b6e5-e2e3-6cf9-0838e68505d1.png">
ここまで行うと.p12ファイルが作成されるので適当な場所に保存して下さい。

## 2-3 p12ファイルをアップロードする
2-1の画面に戻り、p12ファイルのアップロードを行います。
<img width="899" alt="Screen Shot 2018-08-27 at 12.55.51.png" src="https://qiita-image-store.s3.amazonaws.com/0/74248/52042b9a-1959-8a2a-1e0b-9212fa724502.png">
2-2で作成したp12ファイルを選択し、パスワードを入力するとCertificateとPrivate keyが自動で入力されます。
その後Update credentialsボタンを押し、正常に更新が完了すればPush通知証明書の更新が完了です。
お疲れ様でした！

#最後に
不明点や、誤字脱字その他間違い等がある場合は指摘を頂けると幸いです。