キーストア、証明書、エイリアスについて


95

キーストアは実際の証明書ですか、それともエイリアスが証明書ですか?

別のエイリアスを使用してアプリに署名すると、市場のアップデートが台無しになりますか?または、混乱させるために別のキーストアでアプリに署名する必要がありますか?そして、エイリアスの下の情報はどこから見ることができますか?

回答:


127

Keytoolによって生成されたキーストアファイルには、秘密鍵と公開鍵のペアが格納されます。キーストアに格納されている各ペアまたはエントリは、一意のエイリアスによって参照されます。簡単に言えば:

キーストアエントリ=秘密+公開鍵のペア=エイリアスで識別

キーストアは、各プライベートキーを個別のパスワードで保護し、また、キーストア全体の整合性を(場合によっては異なる)パスワードで保護します。

たとえば、Eclipse Androidツールの[署名済みアプリケーションパッケージのエクスポート]オプションを使用してAndroidアプリケーションに署名する場合、最初にキーストアを選択するように求められ、次にそのキーストアから単一のエイリアス/エントリ/ペアを選択するように求められます。キーストアと選択したエイリアスの両方にパスワードを入力すると、アプリが署名され、そのエイリアスの公開鍵(証明書)がAPKに埋め込まれます。

質問に答えるには、同じエイリアスで更新に再度署名することによって、エイリアス「foo」で署名されたアプリケーションの更新のみをリリースできます。エイリアスが保存されているキーストアを失うと、アプリの更新バージョンをリリースできなくなります。

ただし、新しいエイリアスでアプリに署名する方法はありますが、keytool -keycloneを使用してキーストアに既存のエイリアスを複製する必要があります。

元のエントリと同じ秘密鍵と証明書チェーンを持つ新しいキーストアエントリを作成します。

元のエントリはエイリアスで識別されます(指定しない場合、デフォルトで「mykey」になります)。新しい(宛先)エントリは、dest_aliasによって識別されます。コマンドラインで宛先エイリアスが指定されていない場合、ユーザーはそのエイリアスの入力を求められます。

秘密鍵のパスワードがキーストアのパスワードと異なる場合、エントリは、有効なキーパスが提供された場合にのみ複製されます。これは、エイリアスに関連付けられた秘密鍵を保護するために使用されるパスワードです。コマンドラインでキーパスワードが指定されておらず、秘密キーパスワードがキーストアパスワードと異なる場合、ユーザーはパスワードの入力を求められます。必要に応じて、複製されたエントリの秘密鍵を別のパスワードで保護できます。コマンドラインで-newオプションが指定されていない場合、ユーザーは新しいエントリのパスワードの入力を求められます(クローンエントリの秘密キーと同じにすることもできます)。

詳しくは:

http://download.oracle.com/javase/1.5.0/docs/tooldocs/solaris/keytool.html

http://developer.android.com/guide/publishing/app-signing.html


3
開発サイトでは、すべてのアプリに同じ証明書を使用することを推奨しています。これは、同じキーストアを使用している限り、任意のエイリアスを任意のパスワードで使用でき、参照であるため更新を台無しにしないことを意味しますか?実際のキーストアは重要な部分ですか?
Roger、

1
私は私の答えをより正確に書き直しました。つまり、アプリケーションのすべての更新に署名するには、実際には同じエイリアスを使用する必要があります。
JulioGorgé11年

2
@Julioでは、開発サイトが示唆しているように、公開するすべての異なるアプリに同じエイリアスを使用するのがベストプラクティスでしょうか。すべてのアプリに個別のエイリアスを作成する理由がわかりません。
トニー・チャン

@JulioGorgé-ねえ、私はただRエイリアス名が大文字と小文字を区別することを知りたかった.. ??
名前はNilay、2013

@JulioGorgéは、同じエイリアスまたは同じキーを意味しますか。エイリアスは単なる名前です。エイリアスの名前を変更できます。アプリのキー(具体的には公開キー)が一致する限り、アップデートをリリースできます。
Dheeraj Bhaskar 2014
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.