2011-04-20 5 views
91

키 저장소가 실제 인증서인지 또는 별칭 인증서입니까?키 저장소, 인증서 및 별칭 이해

다른 별칭을 사용하여 내 앱에 서명하는 경우 시장에서 업데이트가 엉망이됩니까? 아니면 물건을 엉망으로 만들기 위해 다른 키 스토어로 앱에 서명해야합니까? 별칭 아래의 정보는 어디에서 볼 수 있습니까?

답변

120

Keytool에 의해 생성 된 키 저장소 파일은 개인 키와 공개 키 쌍을 저장합니다. 키 저장소에 저장된 각 쌍 또는 항목은 고유 한 별명으로 참조됩니다. 간단히 :

키 저장소 항목 = 공용 + 개인 키 쌍 = 별칭

키 스토어는 개별 암호를 각각의 개인 키를 보호하고, 또한 전체 키 스토어의 무결성을 보호 식별 (아마도 다른 암호).

예를 들어 Eclipse Android 도구의 [서명 된 응용 프로그램 패키지 내보내기] 옵션을 사용하여 Android 응용 프로그램에 서명 할 때 먼저 키 스토어를 선택한 다음 해당 키 스토어에서 단일 별칭/항목/쌍을 선택하라는 메시지가 표시됩니다 . 키 저장소와 선택한 별칭에 대한 암호를 제공 한 후 응용 프로그램에 서명하고 해당 별칭에 대한 공개 키 (인증서)를 APK에 포함합니다.

질문에 답하기 위해 동일한 별칭으로 업데이트에 다시 서명하여 별칭 'foo'로 서명 한 응용 프로그램에 대한 업데이트 만 릴리스 할 수 있습니다. 별칭이 저장된 키 스토어를 잃으면 앱의 업데이트 된 버전을 공개 할 수 없습니다.

가 새로운 별명을 가진 응용 프로그램에 서명하는 방법이 있지만, 그러나 사용 키 스토어에있는 기존 별칭 keytool -keyclone 복제 포함 :

이 같은있다 새로운 키 스토어 엔트리를 작성을 개인 키 인증서 체인으로 원래 항목.

원래 항목은 별칭 ( 이 제공되지 않은 경우 "mykey"가 기본값 임)로 식별됩니다. 새 (대상) 항목은 dest_alias에 의해 식별됩니다. 명령 줄에 대상 별칭이 제공되지 않으면 사용자에게 메시지가 표시됩니다.

개인 키 암호 키 저장소 암호와 다른 경우 유효한 keypass로 공급되는 경우, 다음 항목 만 복제됩니다. 별칭과 관련된 개인 키를 보호하는 데 사용되는 암호 인 입니다. 명령 줄에 키 암호가 제공되지 않고 개인 키 암호가 키 저장소 암호와 다른 경우 사용자에게 메시지가 표시됩니다. 에있는 개인 키는 원할 경우 다른 암호로 보호 될 수 있습니다. 명령 줄에 -new 옵션을 지정하지 않으면 사용자에게 새 항목의 암호를 입력하라는 메시지가 나타나고 은 복제 된 항목의 개인 키 과 같게 할 수 있습니다.

더 많은 정보 :

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

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

+3

dev에 사이트의 모든 응용 프로그램에 대해 동일한 인증서를 사용하여 제안합니다. 따라서 동일한 키 스토어를 사용하는 한 모든 별칭을 암호로 사용할 수 있으며 단지 참조 일 뿐이므로 업데이트가 엉망이되지는 않습니다. 실제 키 스토어가 중요한 부분입니까? – Roger

+1

더 정확한 답변을 작성했습니다. 즉, 응용 프로그램의 모든 업데이트에 실제로 동일한 별칭을 사용하여 서명해야합니다. –

+2

@Julio 따라서 개발자가 제안하는대로 게시하려는 모든 다른 Apps에 동일한 별칭을 사용하는 것이 가장 좋습니다. 모든 Apps에 별개의 별칭을 만들 이유가 없습니다. –