[解決済み] 鍵屋、証明書、エイリアスを理解する
質問
鍵ストアは実際の証明書ですか、それともエイリアスが証明書ですか?
アプリの署名に別のエイリアスを使用した場合、マーケットでの更新を混乱させるでしょうか。それとも、別の鍵ストアでアプリに署名しないと、事態は混乱するのでしょうか。また、エイリアスの下の情報はどこから見ることができるのでしょうか?
どのように解決するのですか?
で生成したキーストアファイルが キーツール は秘密鍵と公開鍵のペアを保存する。鍵ストアに格納された各ペアまたはエントリは、一意のエイリアスによって参照されます。簡単に言うと
キーストアエントリー = 秘密鍵 + 公開鍵 ペア = エイリアスで識別
鍵ストアは、それぞれの秘密鍵を個別のパスワードで保護し、さらに鍵ストア全体の整合性を(おそらく異なる)パスワードで保護します。
たとえば、Eclipse Android ツールの Export Signed Application Package オプションを使用して Android アプリケーションに署名する場合、最初に鍵ストアを選択するよう求められ、次にその鍵ストアから 1 つのエイリアス/エントリー/ペアを選択するよう求められます。鍵ストアと選択したエイリアスの両方のパスワードを提供すると、アプリが署名され、そのエイリアスの公開鍵(証明書)が APK に埋め込まれます。
さて、質問の答えですが、エイリアス 'foo' で署名されたアプリケーションのアップデートをリリースするには、同じエイリアスでアップデートに再度署名することによってのみ可能です。エイリアスが保存されている鍵ストアを失うと、アプリの更新版をリリースすることができなくなります。
しかし、新しいエイリアスを使用してアプリに署名する方法がありますが、それには鍵ストアにある既存のエイリアスを keytool -keyclone :
新しいキーストアエントリーを作成します。 同じプライベートキーと 証明書チェーンを持つ エントリを作成します。
元のエントリは エイリアス (提供されない場合、デフォルトは "mykey") で識別されます。 を指定します)。新しい(宛先の)エントリは のエントリは dest_alias で識別されます。もし で宛先エイリアスが指定されていない場合 コマンドラインで提供されない場合、ユーザはプロンプトを表示され が表示されます。
秘密鍵のパスワードが鍵ストアのパスワードと異なる場合 が鍵屋のパスワードと異なる場合 有効なキーパスが提供された場合のみ、エントリは複製されます。 有効なキーパスが提供された場合のみ、エントリが複製されます。これは を保護するために使用されるパスワードです。 これは、エイリアスに関連付けられた秘密鍵を保護するために使用されるパスワードです。もし コマンドラインで鍵のパスワードが提供されず コマンドラインで鍵のパスワードが提供されず、秘密鍵 のパスワードと異なる場合、ユーザーは キーストアのパスワードと異なる場合、ユーザはパスワードの入力を プロンプトが表示される。複製されたエントリの秘密鍵は クローン化されたエントリの秘密鍵は、必要に応じて別のパスワードで保護することができます。 は、必要に応じて別のパスワードで保護することができます。もし コマンドラインで -new オプションが指定されない場合 コマンドラインで -new オプションを指定しなかった場合、 ユーザは新しいエントリのパスワードの入力を要求されます。 新しいエントリのパスワードの入力を求められます (そして、新しいエントリのパスワードは 新しいエントリのパスワードの入力を求められます (このパスワードは、クローンしたエントリの秘密鍵のパスワードと同じにすることができます)。 の秘密鍵と同じにすることもできます)。
より詳細な情報です。
http://download.oracle.com/javase/1.5.0/docs/tooldocs/solaris/keytool.html
http://developer.android.com/guide/publishing/app-signing.html
関連
-
[解決済み】Android 8:クリアテキストのHTTPトラフィックが許可されない
-
[解決済み】IllegalStateException: ViewPager で onSaveInstanceState の後にこのアクションを実行できません。
-
[解決済み] インスタンス状態の保存を使用してアクティビティ状態を保存するにはどうすればよいですか?
-
[解決済み] Bitmapオブジェクトに画像を読み込む際にOutOfMemoryが発生する問題
-
[解決済み] アプリケーションを終了することは嫌われますか?
-
[解決済み] Keystoreファイルで証明書名とエイリアスを確認する方法は?
-
[解決済み】「px」、「dip」、「dp」、「sp」の違いは?
-
[解決済み】アプリの署名に使用された鍵ストアを確認するにはどうすればよいですか?
-
[解決済み】apkは前バージョンと同じ証明書で署名する必要があります。
-
[解決済み] AppCompat-v7 21でアクションバー/ツールバーにアイコンを表示する。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Nexus 4でUSBデバッグモードを見つける方法とオンにする方法
-
[解決済み] Android - タイトルバーに戻るボタンが表示される
-
[解決済み] Androidのソースコードにある@hideの意味とは?
-
[解決済み] Android Navigation Architecture Component - 現在表示されているフラグメントを取得する
-
[解決済み] 通知をクリックした後にアプリケーションを開く
-
[解決済み] 文字サイズとアンドロイドの画面サイズの違い
-
[解決済み] Android端末がHDPI画面かMDPI画面かを確認する方法は?
-
[解決済み] FragmentPagerAdapterのgetItemが呼び出されない
-
[解決済み] 非推奨のandroid.support.v4.app.ActionBarDrawerToggleの置き換え方法
-
[解決済み] android studioで署名済みAPKのKey AliasとKey Passwordを取得する方法(Eclipseから移行)