プライベートキーの作成とデジタル署名
プライベートキーはマーケットへのアプリケーションの公開等に必要となります。
非常に大切なものなので、ファイルを紛失しないように注意が必要です。
デジタル署名がないアプリケーション(apkファイル)や、署名の有効期限が切れているアプリケーションは、不正なアプリケーションと認識されます。Android端末にもエミュレータにもインストールすることはできませんし、実行することもできません。ただし、アプリケーションをインストールした後に有効期限が切れた場合は実行できます。
デジタル署名により、以下の事柄が可能になります。
- アプリケーションの作成者を識別
- アプリケーション間の信頼関係を確立
- アプリケーションの変更有無の検出
プライベートキーは秘密鍵とも呼ばれており、金庫の鍵のようなイメージです。また、その金庫が存在する、鍵のかかった部屋の事をキーストアと呼びます。キーストア(ファイル拡張子:.keystore)は、証明書と鍵をセットとして保存している場所で、キーストアファイルとはそのセットが複数格納されているファイルを指します。
プライベートキーの有効期限は、そのキーを使って署名を行うアプリケーションの使用期間よりも長く設定する必要があり、前述の通り、有効期限が切れているとアプリケーションをインストールすることができなくなります。
署名方法には以下の2通りがあります。
- デバッグ時の署名
- リリース時の署名
アプリケーションのデバッグ時にEclipseからアプリケーションを実行すると、自動的にデバッグ用のキーストアが作成され署名が行われます。なお、このキーストアはリリース時に使用することはできません。
デバッグモードでAndroidプロジェクトを初めてビルドした際に、PC内の「.android」フォルダに「debug.keystore」ファイルが自動作成されます。「debug.keystore」ファイルにはデバッグ用のキー情報が格納されており、2回目以降のデバッグ時には格納されているキー情報を使用し署名が行われます。
デバッグ用のキーストアは有効期限が1年間と非常に短く設定されています。キーストアの有効期限が過ぎるとEclipseからアプリケーションの実行ができなくなりますが、その際はデバッグ用のキーストアを削除することで有効期限が再設定された新しいキーストアが作成されます。
アプリケーションのリリース時には自身でキーストアを作成し署名を行います。
デジタル署名の期間に関して、Androidでは有効期限を25年以上の期間にすることを推奨しています。
- Eclipseのウィザードを使う方法
- JDKに同梱されているkeytoolコマンドを使う方法
Eclipseのウィザードを使う場合、デジタル署名を行う途中でプライベートキーを作成することができます。同じプライベートキーを使用する場合、次回以降、その工程は省略することができます。
本書ではEclipseのウィザードを使用したデジタル署名方法に関して説明します。
以下がデジタル署名の流れです。
- デジタル署名を行うプロジェクトを右クリックし、Androidツール→Export Signed Application Packageをクリックします。
- プロジェクト名を確認し「次へ」をクリックします。
- 「Create new keysotre」を選択し、ロケーションにプライベートキーの保存先パス、パスワードと確認を入力し、次へをクリックします。
- エイリアス、パスワード、確認、Validity、Country Codeに値を入力し、次へをクリックします。
- APKファイルの出力先を指定し、完了をクリックします。
ここでプライベートキーを作成しています。
プライベートキーのパスワードは、出品時はもちろん、公開したアプリケーションのバージョンアップの際にも必要になります。パスワードは再発行ができないため、紛失してしまうと、そのアプリケーションのバージョンアップは一切できなくなりますので充分に注意してください。
各項目の概要を下表に記載します。
項目名 | 値 |
---|---|
エイリアス | 署名の際に用いる別名 |
パスワード | 署名の際に入力するパスワード |
Validity | 25以上 |
Country Code | jp |
※ここまで処理を行わないと、プライベートキーを作成できません。
以上がプライベートキーの作成とデジタル署名の方法です。
次のCHAPTERでマーケットへの公開方法を解説します。