[備忘] iOSプッシュ通知用の.p12証明書を作る

# はじめに

iOSアプリのプッシュ通知を利用するのにp12証明書を使っているのですが、毎年更新しなきゃないくせに毎回手順を忘れてググっているので、備忘も兼ねてまとめ。

# 手順

## CSR(Certificate Signing Request; 証明書署名要求)の作成

### 1. Keychain Accessを起動
Launchpadから検索します。
<img width="300" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/143400/2a06c30b-8f9c-fb84-c4ef-150d93df5d29.png">


### 2. 認証局に証明書を要求
上部のメニューバーから "認証局に証明書を要求" をクリックします。
<img width="500" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/143400/39adfc0a-73ed-dfd0-b459-3b58de7733d7.png">

### 3. 証明書情報に各種情報を入力
証明書情報の欄に必要事項を入力します。
* ユーザのメールアドレス: Apple Developerに登録しているメールアドレス
* 通称: わかりやすい名前であれば何でも良いです
* CAのメールアドレス: 空欄
* 要求の処理: 
    * ディスクに保存
    * 鍵ペア情報を指定(これは任意で良さそう)

<img width="500" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/143400/64d8c9bb-a70a-8657-680d-c4dc7922a5f0.png">

### 4. 保存
CSRを保存先を指定して保存します。ファイル名はそのままで大丈夫です。
<img width="400" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/143400/0f3da814-7dd5-7b6f-1e2a-5c3323bb2dce.png">

※ 3で"鍵ペア情報を指定"を選択した場合、以下の画面になるので任意の鍵情報を指定します。
<img width="500" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/143400/1128863f-306d-5db1-8f19-72e85efbd4e2.png">

指定された領域にCSRファイルができているはず。
<img width="150" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/143400/b0f0b84b-2f5e-0265-b92a-d4c79d7e741b.png">


## APNs(Apple Push Notification service)証明書の作成

### 1. Apple Developerにログイン
[Apple Developer](https://developer.apple.com/account/resources/certificates/list)にログインし、証明書一覧を開きます。

### 2. 証明書の作成開始
"Certificates"の横にある+マークをクリックします。
<img width="400" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/143400/d9bf702d-4c3e-b5d3-d609-ceffe7cdf675.png">

### 3. 作成する証明書を選択
"Service"配下から任意の証明書を選択します。
* テスト環境のみの場合は"Sandbox"
* 本番環境でも利用する場合は"Sandbox & Production"

<img width="500" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/143400/9129f4d5-2d67-3201-7819-43a8f6ff5cd7.png">

### 4. App IDの選択
対象のApp IDを選択します。
<img width="600" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/143400/8be86f3a-e4e2-c519-9f2c-a7832b814094.png">

### 5. CSRファイルのアップロード
前項で作成したCSRファイルを選択し、アップロードします。
<img width="600" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/143400/59a4ccc4-7795-ebc6-6392-a1b101c1ed48.png">

### 6. 証明書のダウンロード
証明書が作成されるので、ダウンロードします。


## .p12ファイルの作成

### 1. keychainに証明書を登録
ダウンロードした証明書をダブルクリックすると、keychainに追加されます。

### 2. .p12ファイルを書き出す
keychainに追加された証明書をクリック → 上部のメニューバーから"書き出す"をクリックします。
もしくは、証明書を右クリックで"書き出す"でもOK。
<img width="300" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/143400/4a54d4c6-3e9f-bb41-a23b-c7494baf75df.png">

ファイル名と保存先を指定して保存します。
<img width="400" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/143400/4fd8b9e4-e8b1-8f7c-c307-96f9dfe13f17.png">

任意のパスワードを設定します(空欄でも作れます)。
※ パスワードを設定した場合、利用時にパスワードの確認が必要です。忘れないようにしましょう！
<img width="400" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/143400/797addaf-0f10-cb4d-70bf-701608f1bc64.png">

# 以上！

お疲れ様でした。
やり方次第では年次更新しなくても済む方法もあるっぽいので、そっちを使いたい気持ち。。。