夜更かし工房

稼げるクリエーターになりたい方へ有益な情報をお届け!

【2016年最新版】わかりやすく徹底解説!Apple Storeでアプリをリリースする為に必要なCertificate(配布用証明書)の作成手順

f:id:nightowlgames0314:20160929114543j:plain

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のキーチェーンアクセスという機能を使って作成します。

f:id:nightowlgames0314:20160930062641p:plain

①FinderをクリックしてFinderを開く

②アプリケーションをクリック

③ユーティリティをクリック

④キーチェーンアクセスをダブルクリック

これでキーチェーンアクセスが開きます。

キーチェーンアクセスというのはMacに標準的に組み込まれているユーティリティです。ユーティリティというのはコンピュータの利便性を向上させる補助的な機能を提供するソフトウェアの事で、アップルが開発したMac OS及びMac OS X用のパスワード管理システム「Keychain(キーチェーン)」をユーザーが管理するためのユーティリティが「キーチェーンアクセス」です。パスワードが必要なサイトにログインした時に、下図のような表示を見た事があると思います。

f:id:nightowlgames0314:20160930064958p:plain

画面右上で「このサイトのパスワードを保存しますか?」と問われています。ここで保存を選ぶとそれ以降Macがユーザに代わって適宜パスワードなどを入力してくれます。このパスワードを管理しているシステムがKeychainで、一度保存したパスワードをユーザーが削除したい時にKeychainを操作する為のユーティリティがキーチェーンアクセスと呼ばれるものです。Keychainはパスワードの他にも「秘密のメモ」「鍵」「証明書」を管理しています。今回の作業ではこのKeychainに「証明書」を登録することが最終的な目的になります。 

f:id:nightowlgames0314:20160930070728p:plain

キーチェーンアクセスを開いたら画面上部のメニューにある「キーチェーアクセス」をクリックして「証明書アシスタント」を選択します。更に「認証局に証明書を要求」を選択します。ここから証明書要求ファイルを作成できます。

f:id:nightowlgames0314:20160930071229p:plain

各項目を入力します。

ユーザーのメールアドレス

Apple Developer Programに登録したメールアドレスを入力します。

通称

適当な名前。参考までにAppleの例文では「John Doe Dev Key」となっています。

CAのメールアドレス

今回は要求の処理をディスクにするので無記入で大丈夫です。

要求の処理

「ディスクに保存」 と 「鍵ペア情報を指定」にチェック をします。

f:id:nightowlgames0314:20160930072401p:plain

証明書要求ファイル(CSR)の保存先を選択します。ファイルの名前はデフォルトではCertificateSigningRequest.certSigningRequestになっています。タグは無記入のままにします。場所もデスクトップのままで構いません。

f:id:nightowlgames0314:20160930072943p:plain

鍵のサイズ

2048ビットを選択

アルゴリズム

RSAを選択

証明書を作成する時には、他のユーザーに不正に使用されることを防ぐ為にそれを暗号化する必要があります。ここでは公開鍵暗号方式と呼ばれる暗号化を施します。公開鍵暗号方式「公開鍵」で暗号化して秘密鍵」で復号化する方式です。この「公開鍵」と「秘密鍵」の二つを合わせて鍵ペアと呼び、ここではその鍵ペアを作成する為の設定を入力しています。鍵のサイズは大きいほど他のユーザーから検出されて不正に使用される可能性が低くなります。数年間使用するような識別情報の場合は、サイズを2048ビットにすることが推奨されていて、証明書要求ファイルは鍵のサイズが2048ビットでなければ却下されてしまいます。 作成した鍵ペアのうち「公開鍵」をAppleに提出すると、Appleは発行した証明書を公開鍵で暗号化した状態であなたに渡します。その証明書はあなたが持っている秘密鍵でしか複合化することができないので第三者に悪用されるのを防ぐ事ができます。

f:id:nightowlgames0314:20160930075354p:plain

証明書要求ファイルが作成されました。

証明書を作成する

証明書要求ファイルをApple社に提出して証明書を作成してもらいます。

Apple Developer Program - Apple Developerにアクセスします。

f:id:nightowlgames0314:20160923101628p:plain

画面右上の「メンバーセンター」をクリックします。

f:id:nightowlgames0314:20160930081107p:plain

IDとPasswordを入力してサインインします。

f:id:nightowlgames0314:20160930081158p:plain

画面左部の「Certificates, IDs & Profiles」をクリックします。

f:id:nightowlgames0314:20160930081253p:plain

①アプリの対象を選択できます。今回はiOSアプリをリリースするのでこのままにします。MacSafari向けにアプリをリリースしたい方はここを変更して下さい。

②CertificatesのAllの項目をクリックして下さい。

③Cerificatesを追加する為に「+」をクリックします。

f:id:nightowlgames0314:20160930081731p:plain

作成する証明書の種類を聞かれています。今回はアプリをApple Storeで配布する為の証明書が欲しいので「App Store and Ad Hoc」を選択して「Continue」をクリックします。

f:id:nightowlgames0314:20160930082003p:plain

ここでは証明書要求ファイルの作成手順が解説されています。証明書要求ファイルは既に作成済みなので「Continue」をクリックして次に進みます。

f:id:nightowlgames0314:20160930083159p:plain

「Choose File」から先ほど作成した証明書要求ファイルを選択します。

f:id:nightowlgames0314:20160930082251p:plain

証明書が発行されました。「Download」をクリックしてダウンロードができたら「Done」をクリックして証明書発行手続きを終了します。

f:id:nightowlgames0314:20160930082544p:plain

証明書が追加されているのが確認できます。

証明書を登録する

証明書をMacに登録します。

f:id:nightowlgames0314:20160930082703p:plain

先ほどダウンロードしてきた証明書をダブルクリックします。

f:id:nightowlgames0314:20160930082816p:plain

「キーチェーン」の項目がログインになっているのを確認して「追加」をクリックします。

f:id:nightowlgames0314:20160930084230p:plain

キーチェーンを開いて、「キーチェーン」の項目をログインに、「分類」の項目を証明書にして、上図のようにちゃんと証明書が追加できていることを確認してみましょう。

「この証明書の発行者は無効です」というエラーが出たら

f:id:nightowlgames0314:20160930085629p:plain

キーチェーンアクセスを開いて、左側の「キーチェーン」の項目をログインに、「分類」の項目を証明書にして、証明書を確認したときに上図のように「この証明書の発行者は無効です」と警告がでていることがあります。これは上述しましたが中間証明書の期限切れによるエラーです。これを解決する為にはMacに登録されている中間証明書を削除してから新しい中間証明書をダウンロードしてくる必要があります。

f:id:nightowlgames0314:20160930085925p:plain

「キーチェーン」の項目をシステムにして「分類」の項目を証明書にします。

f:id:nightowlgames0314:20160930090113p:plain

画面上部のメニューから「表示」を選択してその中の「有効期限の切れた証明書を表示」をクリックします。

f:id:nightowlgames0314:20160930090219p:plain

有効期限の切れているApple Worldwide Developer Relations Certification Authorityの中間証明書が現れました。

f:id:nightowlgames0314:20160930090331p:plain

有効期限の切れているApple Worldwide Developer Relations Certification Authorityの中間証明書を削除します。

f:id:nightowlgames0314:20160930090505p:plain

「削除」をクリックします。

f:id:nightowlgames0314:20160930090631p:plain

パスワードを入力して「キーチェーンを変更」をクリックします。

f:id:nightowlgames0314:20160930090726p:plain

ここで証明書を再び確認してみると「この発行者は無効です」というエラーが「この証明書は不明な機関によって署名されています」というエラーに変化しています。中間証明書を削除したからです。

Apple PKIにアクセスします。

f:id:nightowlgames0314:20160930090901p:plain

「WWDR Certificate(Expiring 02/07/23)」をダウンロードします。

f:id:nightowlgames0314:20160930091119p:plain

ダウンロードしてきたファイルをダブルクリックで開きます。

f:id:nightowlgames0314:20160930091208p:plain

キーチェーンの項目がログインになっていることを確認して追加をクリックします。

f:id:nightowlgames0314:20160930091309p:plain

新しい中間証明書が登録できました。

f:id:nightowlgames0314:20160930091421p:plain

新しくダウンロードしてきた中間証明書をキーチェーンアクセスから確認してみると「この証明書は有効です」と表示されています。

f:id:nightowlgames0314:20160930091527p:plain

先ほど「この発行者は無効です」とエラーが出ていた証明書も「この証明書は有効です」に変化しています。