키 저장소, 인증서 및 별명 이해 별칭이 인증서입니까? 다른 별칭을 사용하여 앱에 서명하면 시장의

키 저장소가 실제 인증서입니까 아니면 별칭이 인증서입니까?

다른 별칭을 사용하여 앱에 서명하면 시장의 업데이트가 엉망이 되나요? 아니면 문제를 해결하기 위해 다른 키 저장소로 내 앱에 서명해야합니까? 별칭 아래의 정보는 어디에서 볼 수 있습니까?



답변

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