MonacaアプリのiOsへのプッシュ受信設定と必要な証明書(1/2)

#iOsプッシュ通知導入の流れ#
Monacaで開発したアプリでiOsへのプッシュ通知を可能にするには、（[Androidと異なり](https://qiita.com/TaskForceYokohama/items/bd7666b4fcd42cb5755f)）以下の3つの手順を踏む必要があります。

 - 証明書（開発用・プッシュ通知用)の発行
 - 開発用証明書とアプリとの紐づけ
 - プッシュ通知用証明書とアプリとの紐づけ

プッシュ通知設定に必要なファイルはどれなのかとか、順番通りに作らないと１からやり直しなのかとか、アプリ2つ目以降の場合作らなくてよいファイルは何なのかとか、わかりにくかった部分の覚書です。
証明書とアプリの紐づけの手順は別のページで紹介しています。
##証明書の発行##
###発行の手順###

1. 「CSRファイル」作成
2. 「開発用証明書」とこれの「秘密鍵」発行
3. 　端末登録
4. 「App ID(Bundle ID)」作成**※アプリごとに必要**
5. 「プロビジョニングプロファイル」作成**※アプリごとに必要**
6. 「プッシュ通知用証明書」とこれの「秘密鍵」発行**※アプリごとに必要**

以上の6つの手順が必要です。
途中から作ると必要なファイルが欠けてしまう場合があります。順番通りに作りましょう。

初めてアプリにプッシュ通知を登録する際は以上の6つの手順をこなす必要がありますが、プッシュ通知を登録するアプリが2個目以降であれば、「**※アプリごとに必要**」と表記のある手順だけ行えばよいようです。
*（このページでは、プッシュ通知の初回登録時に必要な「1.『CSRファイル』作成」、「2.『開発用証明書』とこれの『秘密鍵』発行」のみ説明しています。[アプリ2個目以降のプッシュ通知設定](https://qiita.com/TaskForceYokohama/items/d974d3da7c508505abbc)）*

##それぞれのファイルの役割は？##
そもそも何のファイルを発行しているのかの簡単なメモです。読み飛ばしてかまいません。（[こちらのサイトが分かりやすかったです。](https://qiita.com/guitar_char/items/0b35ba7c02f3c748c5ab)）

| ファイル | 役割 |
|:--|:--|
|CSRファイル   |Cirtificate Signing Request（証明書署名要求）。<br>「公開鍵」とその所有者情報、申請者の署名が記載されている。|
|開発用証明書| 開発者本人と証明するための証明書。<br>盗聴や改ざん、なりすまし、事後否認を防止するための電子証明書。拡張子は「.cer」。|
|開発用証明書秘密鍵|開発用証明書の秘密鍵。拡張子は「.p12」。([参照](http://www.b-chan.jp/entry/essay/public-key-cryptosystem)）|
|App ID   |開発者（または開発チーム）が開発しているアプリに一つずつ割り振るID。チームIDとBundleIDを組み合わせたもの。（[参照](https://www.quora.com/What’s-the-difference-between-an-“app-ID”-and-a-“bundle-ID”-and-what-is-each-used-for)）   |
|プロビジョニングプロファイル   |AppStore以外からiOS端末にアプリを配信する際必要。証明書やアプリの情報等。（[参照](https://support.kaspersky.co.jp/9783)）|
|プッシュ通知用証明書   |プッシュ通知を利用する際に必要となる証明書。拡張子は「.cer」。|
|プッシュ通知用証明書秘密鍵   |プッシュ通知用証明書の秘密鍵。拡張子は「.p12」。|

##１．CSRファイルの作成##
CSRファイルは「Cirtificate Signing Request（証明書署名要求）ファイル」の略です。
以降のステップで「開発用証明書」と「プッシュ通知用証明書」を発行する際必要となります。
###CSRファイル発行手順###
①Macの「キーチェーンアクセス」を開き、「証明書アシスト」＞「認証局に証明書を要求」を選択します。
![csr1.png](https://qiita-image-store.s3.amazonaws.com/0/256202/f9c7b0c8-e857-3741-a34d-f841bdfa1028.png)

②「ユーザのメールアドレス」に任意のアドレスを入力します。「通称」はそのまま、「CAのメールアドレス」は空欄でOKです。<br>「要求の処理」は「ディスクに保存」を選択し、「鍵ペア情報を設定」にチェックを入れて「続ける」をクリックします。
![csr2.png](https://qiita-image-store.s3.amazonaws.com/0/256202/2e2bf46c-26d3-fbef-a85d-2c6c0b09919b.png)

③鍵ペア情報確認画面が出るので「続ける」をクリックします。
次の「設定結果」では「完了」をクリックします。
「Finderに表示」をクリックして、任意のフォルダに保存しましょう。
![csr4.png](https://qiita-image-store.s3.amazonaws.com/0/256202/56b30d56-9793-c284-bd4a-edf96244202e.png)

CSRファイルの発行手順は以上です。
##２．開発用証明書と秘密鍵の作成##
「開発用証明書」は、開発者本人と証明するための証明書です。
開発用証明書と、次のステップで作成する「プロビジョニングファイル」を使って、改ざんやなりすましが行われていないことを確かめます。
証明書を利用するには証明書の「秘密鍵」が必要になります。
###開発用証明書 発行手順###
①[Apple Developer Program](https://developer.apple.com/account/) にログインし、「Certificates, IDs & Profiles」をクリックします。
![devCir1.png](https://qiita-image-store.s3.amazonaws.com/0/256202/5a34cf2c-6c8b-ec52-983b-12a3841f8d8f.png)

②「Cirtificates」＞「All」を選択し、右上の「＋」ボタンをクリックします。
![devCir2.png](https://qiita-image-store.s3.amazonaws.com/0/256202/47ab884f-1574-c1bf-7b0e-8154e5465fb1.png)

③表示された画面の「iOs App Development」を選択します。
他の項目はそのままで、下へスクロールして「Continue」をクリックします。
![devCir3.png](https://qiita-image-store.s3.amazonaws.com/0/256202/da38fe64-3f7a-a39a-bc11-0da87f594a2f.png)

④次の画面の「Choose File」ボタンをクリックし、先に作っておいた「CSRファイル」を選択します。
「Continue」ボタンをクリックすると、開発用証明書が作成されます。
![devCir5.png](https://qiita-image-store.s3.amazonaws.com/0/256202/09a3c385-7155-a49a-61cf-52e4a1c425b8.png)

次の画面で「Download」ボタンをクリックし、作成された「開発用証明書」を任意のフォルダに保存しましょう。
「開発用証明書」作成手順は以上です。

###開発用証明書秘密鍵 発行手順###
①先に作った「開発用証明書」をダブルクリックしてキーチェーンアクセスを開きます。
![devP1.png](https://qiita-image-store.s3.amazonaws.com/0/256202/460ab875-99f0-7376-f742-416668b71b92.png)


②証明書左側の▶マークを押すと秘密鍵を確認できます。
▶マークは閉じた状態にしたまま、項目を右クリックして「iPhone Developer:～を書き出す」を選択します。
![devP3.png](https://qiita-image-store.s3.amazonaws.com/0/256202/ac9c43fa-1b19-3077-8b00-d60e26434eb6.png)



③秘密鍵保存画面が表示されますので、「名前」任意、「タグ」任意、「場所」任意で設定して「保存」ボタンを押します。
この時、パスワードを求められますが何も入力せず先に進みます。
![devP4.png](https://qiita-image-store.s3.amazonaws.com/0/256202/4469119c-f940-c1a3-d70e-7fdf27196d21.png)


以上で開発用証明書の秘密鍵発行手順は終了です。


##３．端末登録##
実機テストする端末を登録します。
###端末登録手順###
①「Devices」＞「All」＞右上の「＋」ボタンをクリックします。
![devReg1.png](https://qiita-image-store.s3.amazonaws.com/0/256202/baa9ca27-92c9-c5b8-afd7-755753c4c0d1.png)

![devReg2.png](https://qiita-image-store.s3.amazonaws.com/0/256202/8f0f6899-6496-bb5f-c5c1-572c6628cacd.png)

②「Register Device」にチェックを入れ、「Name」に任意の端末名称、「UDID」に端末のUDIDを入力して「Continue」をクリックします。
![devReg3.png](https://qiita-image-store.s3.amazonaws.com/0/256202/be8d7f92-ba94-26c7-aced-3063db7cfd0b.png)


③次の画面で端末情報を確認し、問題なければ「Register」をクリックします。

④次の画面で「Done」をクリックすれば端末登録処理は終了です。