Google Play 앱 서명 사용

Google은 Google Play 앱 서명으로 개발자 대신 앱의 서명 키를 관리하고 보호하면서 이 키를 사용하여 배포할 APK에 서명합니다. 이를 통해 키를 분실하거나 도난당했을 때 개발자를 보호하는 데 도움이 되는 앱 서명 키를 안전하게 저장할 수 있습니다.

중요: 권장 앱 게시 형식인 Android App Bundle을 사용하려면 Play Console에 App Bundle을 업로드하기 전에 Google Play 앱 서명에 등록해야 합니다.

등록하려면 계정 소유자이거나 전체 '프로덕션 출시 관리' 권한이 있는 사용자여야 하며 서비스 약관에 동의해야 합니다. Google Play 앱 서명에 한 번에 하나씩 앱을 등록할 수 있습니다.

작동 원리

Google Play 앱 서명을 사용할 경우 키는 Google에서 자체 키를 저장하는 데 사용하는 인프라와 동일한 인프라에 저장되며 Google 키 관리 서비스로 보호됩니다. Google 기술 인프라에 관해 알아보려면 Google Cloud 보안 백서를 읽어보시기 바랍니다.

Android 앱은 비공개 키로 서명됩니다. 앱 업데이트를 신뢰할 수 있도록 하기 위해 모든 비공개 키에는 기기 및 서비스에서 앱이 신뢰할 만한 소스로부터 게시되었는지 확인하는 데 사용하는 관련 공개 인증서가 있습니다. 기기는 업데이트의 서명이 설치된 앱의 서명과 일치할 때만 업데이트를 수락합니다. Google이 앱 서명 키를 관리하도록 허용함으로써 이 프로세스를 더욱 안전하게 만들 수 있습니다.

참고: Google Play 앱 서명 사용은 선택사항입니다. App Bundle을 사용하는 대신 계속 APK를 업로드하고 자신의 키를 직접 관리할 수 있습니다. 하지만 키 저장소를 분실하거나 도난당하면 새로운 패키지 이름으로 새 앱을 게시해야만 앱을 업데이트할 수 있습니다.

키, 아티팩트, 도구 설명
용어 설명
앱 서명 키

Google Play에서 사용자 기기로 전달되는 APK 서명에 사용하는 키입니다. Google Play 앱 서명을 선택하면 기존 앱 서명 키를 업로드하거나 Google에서 키를 생성하게 할 수 있습니다.

앱 서명 키는 앱의 전체 기간 동안 절대 변경되지 않습니다. 앱 서명 키는 비공개로 유지되지만 앱의 공개 인증서는 다른 사람과 공유할 수 있습니다.

업로드 키

Google Play에 업로드하기 전에 App Bundle이나 APK에 서명하는 데 사용하는 키입니다. 업로드 키는 비공개로 유지되지만 앱의 공개 인증서는 다른 사람과 공유할 수 있습니다. 보안상의 이유로 서로 다른 앱 서명 키와 업로드 키를 사용하는 것이 좋습니다.

업로드 키를 생성하는 방법은 두 가지입니다.

  • 앱 서명 키 사용: 앱 서명을 선택할 때 Google에서 앱 서명 키를 생성하게 하면 첫 번째 버전에 사용하는 키가 업로드 키가 됩니다.
  • 별도의 업로드 키 사용: 앱 서명을 선택할 때 자체 앱 서명 키를 제공하면 보안 강화를 위해 새로운 업로드 키를 생성하는 옵션이 표시됩니다. 새로운 업로드 키를 생성하지 않으면 앱 서명 키를 업로드 키로 사용하여 버전에 서명합니다.
인증서(.der 또는 .pem)

인증서에는 공개 키와 키 소유자에 관한 추가 식별 정보가 포함되어 있습니다. 공개 키 인증서를 사용하면 누구나 App Bundle이나 APK에 서명한 사람을 확인할 수 있으며 비공개 키가 포함되어 있지 않으므로 이를 다른 사람과 공유할 수 있습니다.

API 제공업체에 키를 등록하려면 Play Console의 앱 서명 페이지에서 앱 서명 키와 업로드 키의 공개 인증서를 다운로드합니다. 공개 키 인증서는 다른 사람과 공유할 수 있으며 비공개 키를 포함하지 않습니다.

인증서 지문

짧고 고유한 인증서 표현 형식으로 API 제공업체가 패키지 이름과 함께 요청하는 경우가 많습니다. 앱을 제공업체 서비스에 등록하는 데 사용됩니다.

업로드 및 앱 서명 인증서의 MD5, SHA-1 및 SHA-256 지문은 Play Console의 앱 서명 페이지에서 찾을 수 있습니다. 같은 페이지에서 원래 인증서(.der)를 다운로드함으로써 다른 지문을 계산할 수도 있습니다.

Java Keystore(.jks 또는 .keystore) 보안 인증서와 비공개 키 저장소입니다.
Play Encrypt Private Key(PEPK) 도구

Java Keystore에서 비공개 키를 내보내고 암호화하여 Google Play로 전송하는 도구입니다.

Google에서 사용할 앱 서명 키를 제공할 때 키(필요한 경우 공개 인증서도 포함)를 내보내고 업로드하는 옵션을 선택하여 안내에 따라 도구를 다운로드하고 사용합니다. 원하는 경우 PEPK 도구의 오픈소스 코드를 다운로드, 검토 및 사용할 수 있습니다.

앱 서명 절차

Google Play 앱 서명을 선택하기 전이나 선택한 후에 원래 앱 서명 키로 서명된 APK를 업로드할 수 있습니다.

Android App Bundle 사용을 시작하는 경우 프로덕션 환경에서 기존 APK를 사용하면서 테스트 트랙에서 테스트할 수 있습니다. 절차는 다음과 같습니다.

  1. App Bundle 또는 APK에 서명하고 Play Console에 업로드합니다.
  2. 업로드하는 내용에 따라 서명 절차는 다음과 같이 달라집니다.
    • App Bundle: Google에서 App Bundle로부터 최적화된 APK를 생성하고 앱 서명 키로 이에 서명합니다.
    • 업로드 키로 서명된 APK: Google에서 서명을 확인하고 APK에서 서명을 분리하여 APK를 앱 서명 키로 다시 서명합니다.
    • 앱 서명 키로 서명된 APK: Google에서 서명을 확인합니다.
  3. Google에서 서명된 APK를 통해 앱을 게시하고 사용자에게 표시합니다.

Google Play 앱 서명 선택

새로운 앱

1단계: 업로드 키 만들기

  1. 안내에 따라 업로드 키를 만듭니다.
  2. 업로드 키로 새 APK에 서명합니다.

2단계: 버전 준비

  1. 안내에 따라 버전을 준비하고 출시합니다.
  2. 출시 트랙을 선택한 후 'Google에서 앱 서명 키를 관리 및 보호하도록 허용' 섹션에서 앱 서명을 구성합니다.
  3. 생성된 키가 향후 버전에 서명하는 데 사용할 업로드 키 또는 다음 사항을 포함하는 고급 옵션이 되도록 계속을 선택합니다.
    • 개발자 계정에서 다른 앱과 같은 키를 사용(옵션 2).
    • 기존 앱 서명 키 업로드(옵션 2, 3, 4): 가장 적합한 내보내기 및 업로드 옵션을 선택하세요. 앱 서명 키 및 공개 인증서를 업로드하면 업로드 키를 만들거나 앱 서명 키를 업로드 키로 계속 사용할 수 있습니다.

참고: 계속하려면 서비스 약관에 동의하고 앱 서명을 선택해야 합니다.

3단계: API 제공업체에 앱 서명 키 등록

앱에서 API를 사용하는 경우 일반적으로 인증서의 지문을 사용하여 Google이 앱에 서명하는 데 사용하는 키의 인증서를 등록하여 인증해야 합니다. 인증서를 찾을 수 있는 위치는 다음과 같습니다.

  1. Play Console에 로그인합니다.
  2. 앱을 선택합니다.
  3. 왼쪽 메뉴에서 출시 관리 > 앱 서명을 선택합니다.
  4. 앱 서명 인증서의 지문(MD5, SHA-1 및 SHA-256)을 복사합니다.
    • API 제공업체가 다른 유형의 지문을 요구하면 .der 형식의 원래 인증서를 다운로드하고 API 제공업체가 요구하는 변환 도구를 사용하여 변환할 수 있습니다.
기존 앱

1단계: Google Play 앱 서명 등록

  1. Play Console에 로그인합니다.
  2. 앱을 선택합니다.
  3. 왼쪽 메뉴에서 출시 관리 > 앱 서명을 선택합니다.
  4. 아직 동의하지 않은 경우 서비스 약관을 검토하고 동의를 선택합니다.

2단계: Google에 원래 키 전송 및 업로드 키 만들기

  1. 원래 앱 서명 키를 찾습니다.
  2. Play Console에 로그인합니다.
  3. 앱을 선택합니다.
  4. 왼쪽 메뉴에서 출시 관리 > 앱 서명을 선택합니다.
  5. 출시 프로세스에 가장 적합한 내보내기 및 업로드 옵션을 선택하고 기존 앱 서명 키를 업로드합니다.

3단계: 업로드 키 만들기(선택사항 및 권장)

  1. 업로드 키를 만들고 인증서를 Google Play에 업로드합니다.
    • 앱 서명 키를 업로드 키로 계속 사용할 수도 있습니다.
  2. 앱 서명 인증서의 지문(MD5, SHA-1 및 SHA-256)을 복사합니다.
    • 테스트를 위해 인증서 지문 및 앱 서명 키를 사용하여 업로드 키 인증서를 API 제공업체에 등록해야 할 수 있습니다.

4단계: 업로드 키로 다음 앱 업데이트 서명

앱 업데이트를 출시하면 업로드 키를 사용하여 서명해야 합니다.

  • 새로운 업로드 키를 생성하지 않은 경우: 원래 앱 서명 키를 계속 사용하여 버전을 Google Play에 업로드하기 전에 서명합니다. 앱 서명 키를 분실했다면 새 업로드 키를 생성하고 Google에 등록하여 계속 앱을 업데이트할 수 있습니다.
  • 새 업로드 키를 생성한 경우: 새 업로드 키를 사용하여 버전을 Google Play에 업로드하기 전에 서명합니다. 버전을 업로드하고 나면 Google이 버전에서 업로드 키를 확인하여 신원을 확인합니다. 업로드 키를 분실했다면 지원팀에 문의하여 재설정할 수 있습니다.

업로드 키 만들기 및 키 저장소 업데이트

보안 강화를 위해 앱 서명 키 대신 새로운 업로드 키로 앱에 서명하는 것이 좋습니다.

Google Play 앱 서명을 선택할 때 업로드 키를 만들거나 나중에 출시 관리 > 앱 서명에서 업로드 키를 만들 수 있습니다.

업로드 키를 만드는 방법은 다음과 같습니다.

  1. Android 개발자 사이트에서 안내를 따릅니다. 안전한 곳에 키를 저장하세요.
  2. 업로드 키의 인증서를 PEM 형식으로 내보냅니다. 밑줄 표시된 다음 인수를 바꿉니다.
    • $ keytool -export -rfc -keystore upload-keystore.jks -alias upload -file upload_certificate.pem
  3. 출시 프로세스에서 메시지가 나타나면 인증서를 업로드하여 Google에 등록합니다.

업로드 키를 사용하는 경우:

  • 업로드 키는 Google에만 등록되며 앱 제작자의 신원 인증에 사용됩니다.
  • 서명은 사용자에게 전송되기 전에 업로드된 모든 APK에서 삭제됩니다.
업로드 키 제한사항
  • 2048비트 이상의 RSA 키여야 합니다.
  • 2048비트 미만의 DSA, EC 및 RSA 키는 지원되지 않습니다.
키 저장소 업데이트

업로드 키를 만든 후 확인하고 업데이트할 수 있는 몇 개의 위치는 다음과 같습니다.

  • 로컬 기기
  • 잠긴 온사이트 서버(다양한 ACL)
  • 클라우드 기기(다양한 ACL)
  • 전용 비밀 관리 서비스
  • (Git) 저장소

권장사항

  • 앱을 Google Play 외부에 배포하거나 향후 배포할 계획이 있는 경우 Google Play 앱 서명을 선택하면 모든 앱 스토어에 사용할 앱 서명 키를 생성한 다음 Google에 업로드할 수 있습니다.
  • 계정을 보호하려면 Play Console에 액세스할 수 있는 계정에 2단계 인증을 사용합니다.
  • App Bundle을 테스트 트랙 또는 프로덕션 트랙에 게시한 후 App Bundle 탐색기를 사용하여 특정 기기의 모든 APK가 포함된 ZIP 보관 파일을 다운로드할 수 있습니다. 이러한 APK는 앱 서명 키로 서명되며 bundletool 명령줄 유틸리티를 사용하여 기기의 ZIP 보관 파일에 설치할 수 있습니다.
  • 보안 강화를 위해 앱 서명 키와 다른 새로운 업로드 키를 생성합니다.
  • 업로드 키로 서명된 APK를 테스트하려면 인증 시 앱의 서명을 사용하는 서비스나 API가 포함된 업로드 키(Google 지도 API 또는 Facebook SDK)를 등록해야 합니다.
  • Google API를 사용하는 경우 앱용 Google Cloud Console에 업로드 인증서를 등록해야 합니다.

업로드 키를 분실했거나 도난당했나요?

비공개 업로드 키를 분실했거나 도난당했다면 새 키를 만들고 계정 소유자에게 지원팀에 문의하여 키를 재설정하도록 요청할 수 있습니다. 지원팀에 문의하는 경우 계정 소유자는 upload_certificate.pem 파일을 첨부해야 합니다.

Google 지원팀이 새 업로드 키를 등록하고 나면 이메일을 받게 되며, 키 저장소를 업데이트하고 API 제공업체에 키를 등록할 수 있습니다.

중요: 업로드 키를 재설정해도 Google Play에서 APK를 사용자에게 전달하기 전에 다시 서명하는 데 사용하는 앱 서명 키는 영향을 받지 않습니다.

이 도움말이 도움이 되었나요?
어떻게 하면 개선할 수 있을까요?