【2016年最新版】わかりやすく徹底解説!Apple Storeでアプリをリリースする為に必要なCertificate(配布用証明書)の作成手順
Certificateって何?
あなたが開発したアプリをApp Storeで公開するためには、Apple社にアプリを提出したのが誰のどのマシンなのかを改竄や成り済ましを防ぐ為に証明する必要があります。その証明に必要なものが Certificate(証明書)です。Certificateには開発用と製品(配布)用の2種類があります。開発用証明書はあなたのMacに接続されたiOS端末だけにアプリをダウンロードさせて実機テストをしたい時に必要になります。配布用証明書はアプリをApp Storeで公開して誰からでもアプリがダウンロードできる状態にしたい時に必要になります。今回は配布用証明書の作成手順について解説していきます。
Certificate(配布用証明書)を作成する際の注意点
証明書の作成にはApple Developer Programへの登録が必要です
証明書の作成にはApple社が定める開発者用のアカウントを登録済みである必要があります。Apple Developer Programへの登録手順はこちらで解説しています。
unitynightowlgames.hatenablog.com
中間証明書の期限切れ
2016/2/15にApple Worldwide Developer Relations Certification Authorityの中間証明書が期限切れを起こしました。これにより、証明書を作成しても無効な証明書になってしまいます。
Apple Worldwide Developer Relations Certification Authorityというのは、Appleと開発者の関係を証明してくれる認証局のことで、今回作成する証明書もこの認証局が発行してくれます。中間証明書というのは、証明書を発行する認証局が信頼できる機関であることを証明するための証明書で、この中間証明書はMacの購入時には既にお使いのマシンにダウンロードされています。この中間証明書の期限が切れてしまうと証明書を発行してもその発行者がそもそも認めてもらえずに無効な証明書になってしまうのです。これを解決する為にはMacに登録されている中間証明書を削除してから新しい中間証明書をダウンロードしてくる必要があります。その手順も後述します。
ブラウザはSafariを使用する
ボタンが反応しない、レスポンスが返ってこない、各種登録がうまくいかない、などのSafariブラウザ依存の仕様によるエラーが発生する為、ブラウザは必ずSafariを使用してください。また、他のApple IDでSign In実績がある場合、時折不穏な遷移をすることがありますので、その際はSafariのキャッシュを削除してから作業してください。キャッシュの削除の手順は下記のリンク先を参考にしてください。
ブラウザーのキャッシュを削除する方法を教えてほしい。(Safari 6~8) | 会員サポート > Q&A(よくあるご質問) : @nifty
Certificate(配布用証明書)の作成手順
証明書要求ファイル(CSR)を作成する
証明書を作成する為には証明書要求ファイルが必要です。証明書要求ファイルはMacのキーチェーンアクセスという機能を使って作成します。
①FinderをクリックしてFinderを開く
②アプリケーションをクリック
③ユーティリティをクリック
④キーチェーンアクセスをダブルクリック
これでキーチェーンアクセスが開きます。
キーチェーンアクセスというのはMacに標準的に組み込まれているユーティリティです。ユーティリティというのはコンピュータの利便性を向上させる補助的な機能を提供するソフトウェアの事で、アップルが開発したMac OS及びMac OS X用のパスワード管理システム「Keychain(キーチェーン)」をユーザーが管理するためのユーティリティが「キーチェーンアクセス」です。パスワードが必要なサイトにログインした時に、下図のような表示を見た事があると思います。
画面右上で「このサイトのパスワードを保存しますか?」と問われています。ここで保存を選ぶとそれ以降はMacがユーザに代わって適宜パスワードなどを入力してくれます。このパスワードを管理しているシステムがKeychainで、一度保存したパスワードをユーザーが削除したい時にKeychainを操作する為のユーティリティがキーチェーンアクセスと呼ばれるものです。Keychainはパスワードの他にも「秘密のメモ」「鍵」「証明書」を管理しています。今回の作業ではこのKeychainに「証明書」を登録することが最終的な目的になります。
キーチェーンアクセスを開いたら画面上部のメニューにある「キーチェーアクセス」をクリックして「証明書アシスタント」を選択します。更に「認証局に証明書を要求」を選択します。ここから証明書要求ファイルを作成できます。
各項目を入力します。
ユーザーのメールアドレス
Apple Developer Programに登録したメールアドレスを入力します。
通称
適当な名前。参考までにAppleの例文では「John Doe Dev Key」となっています。
CAのメールアドレス
今回は要求の処理をディスクにするので無記入で大丈夫です。
要求の処理
「ディスクに保存」 と 「鍵ペア情報を指定」にチェック をします。
証明書要求ファイル(CSR)の保存先を選択します。ファイルの名前はデフォルトではCertificateSigningRequest.certSigningRequestになっています。タグは無記入のままにします。場所もデスクトップのままで構いません。
鍵のサイズ
2048ビットを選択
RSAを選択
証明書を作成する時には、他のユーザーに不正に使用されることを防ぐ為にそれを暗号化する必要があります。ここでは公開鍵暗号方式と呼ばれる暗号化を施します。公開鍵暗号方式は「公開鍵」で暗号化して「秘密鍵」で復号化する方式です。この「公開鍵」と「秘密鍵」の二つを合わせて鍵ペアと呼び、ここではその鍵ペアを作成する為の設定を入力しています。鍵のサイズは大きいほど他のユーザーから検出されて不正に使用される可能性が低くなります。数年間使用するような識別情報の場合は、サイズを2048ビットにすることが推奨されていて、証明書要求ファイルは鍵のサイズが2048ビットでなければ却下されてしまいます。 作成した鍵ペアのうち「公開鍵」をAppleに提出すると、Appleは発行した証明書を公開鍵で暗号化した状態であなたに渡します。その証明書はあなたが持っている秘密鍵でしか複合化することができないので第三者に悪用されるのを防ぐ事ができます。
証明書要求ファイルが作成されました。
証明書を作成する
証明書要求ファイルをApple社に提出して証明書を作成してもらいます。
Apple Developer Program - Apple Developerにアクセスします。
画面右上の「メンバーセンター」をクリックします。
IDとPasswordを入力してサインインします。
画面左部の「Certificates, IDs & Profiles」をクリックします。
①アプリの対象を選択できます。今回はiOSアプリをリリースするのでこのままにします。MacやSafari向けにアプリをリリースしたい方はここを変更して下さい。
②CertificatesのAllの項目をクリックして下さい。
③Cerificatesを追加する為に「+」をクリックします。
作成する証明書の種類を聞かれています。今回はアプリをApple Storeで配布する為の証明書が欲しいので「App Store and Ad Hoc」を選択して「Continue」をクリックします。
ここでは証明書要求ファイルの作成手順が解説されています。証明書要求ファイルは既に作成済みなので「Continue」をクリックして次に進みます。
「Choose File」から先ほど作成した証明書要求ファイルを選択します。
証明書が発行されました。「Download」をクリックしてダウンロードができたら「Done」をクリックして証明書発行手続きを終了します。
証明書が追加されているのが確認できます。
証明書を登録する
証明書をMacに登録します。
先ほどダウンロードしてきた証明書をダブルクリックします。
「キーチェーン」の項目がログインになっているのを確認して「追加」をクリックします。
キーチェーンを開いて、「キーチェーン」の項目をログインに、「分類」の項目を証明書にして、上図のようにちゃんと証明書が追加できていることを確認してみましょう。
「この証明書の発行者は無効です」というエラーが出たら
キーチェーンアクセスを開いて、左側の「キーチェーン」の項目をログインに、「分類」の項目を証明書にして、証明書を確認したときに上図のように「この証明書の発行者は無効です」と警告がでていることがあります。これは上述しましたが中間証明書の期限切れによるエラーです。これを解決する為にはMacに登録されている中間証明書を削除してから新しい中間証明書をダウンロードしてくる必要があります。
「キーチェーン」の項目をシステムにして「分類」の項目を証明書にします。
画面上部のメニューから「表示」を選択してその中の「有効期限の切れた証明書を表示」をクリックします。
有効期限の切れているApple Worldwide Developer Relations Certification Authorityの中間証明書が現れました。
有効期限の切れているApple Worldwide Developer Relations Certification Authorityの中間証明書を削除します。
「削除」をクリックします。
パスワードを入力して「キーチェーンを変更」をクリックします。
ここで証明書を再び確認してみると「この発行者は無効です」というエラーが「この証明書は不明な機関によって署名されています」というエラーに変化しています。中間証明書を削除したからです。
Apple PKIにアクセスします。
「WWDR Certificate(Expiring 02/07/23)」をダウンロードします。
ダウンロードしてきたファイルをダブルクリックで開きます。
キーチェーンの項目がログインになっていることを確認して追加をクリックします。
新しい中間証明書が登録できました。
新しくダウンロードしてきた中間証明書をキーチェーンアクセスから確認してみると「この証明書は有効です」と表示されています。
先ほど「この発行者は無効です」とエラーが出ていた証明書も「この証明書は有効です」に変化しています。