2013年7月13日土曜日

Androidアプリのデジタル署名に必要な証明書の作成

Google Playにアプリを公開するためには apk ファイルにデジタル署名をする必要があります。
今回はそのデジタル署名に必要な証明書の作成方法を説明します。

keytool コマンドを使います。
下記の例ではエイリアス名 ash、有効期限10000日の証明書を作ります。
結果は ash.keystore というファイルに出力されます。

$ keytool -genkey -v -keystore ash.keystore -alias ash -keyalg RSA -validity 10000

キーストアのパスワードを入力してください:

新規パスワードを再入力してください:
 
姓名を入力してください。
  [Unknown]:  ash
組織単位名を入力してください。
  [Unknown]:  ash
組織名を入力してください。
  [Unknown]:  ash
都市名または地域名を入力してください。
  [Unknown]:  shinagawa
州名または地方名を入力してください。
  [Unknown]:  tokyo
この単位に該当する 2 文字の国番号を入力してください。
  [Unknown]:  jp
CN=ash, OU=ash, O=ash, L=shinagawa, ST=tokyo, C=jp でよろしいですか?
  [no]:  yes
10,000 日間有効な 1,024 ビットの RSA の鍵ペアと自己署名型証明書 (SHA1withRSA) を生成しています
    ディレクトリ名: CN=ash, OU=ash, O=ash, L=shinagawa, ST=tokyo, C=jp
<ash> の鍵パスワードを入力してください。
    (キーストアのパスワードと同じ場合は RETURN を押してください):  
新規パスワードを再入力してください: 
[ash.keystore を格納中] 
$

環境によって聞かれる内容が多少違うようです。上記はMacの例。

Eclipseでapkファイルを生成するときに上記ファイル(ash.keystore)を指定し、エイリアス名、パスワードを入力すれば署名されたapkファイルが作成されます。