Sử dụng tính năng ký ứng dụng của Google Play

Với tính năng ký ứng dụng của Google Play, Google quản lý và bảo vệ khóa ký của ứng dụng của bạn và sử dụng khóa để ký APK cho việc phân phối. Đây là cách an toàn để lưu trữ khóa ký ứng dụng, thứ có thể bảo vệ bạn nếu khóa của bạn bị mất hoặc bị xâm phạm.

Quan trọng: Để sử dụng Android App Bundle, định dạng xuất bản ứng dụng mà chúng tôi đề xuất, bạn cần đăng ký tính năng ký ứng dụng của Google Play trước khi tải gói ứng dụng của bạn lên Play Console.

Để chọn tham gia, bạn phải là chủ sở hữu tài khoản hoặc người dùng với quyền "Quản lý các bản phát hành chính thức" toàn cầu, và bạn cần chấp nhận Điều khoản dịch vụ. Bạn có thể lần lượt đăng ký tính năng ký ứng dụng của Google Play cho từng ứng dụng.

Cách hoạt động

Khi bạn sử dụng tính năng ký ứng dụng của Google Play, các khóa của bạn được lưu trữ trên cùng một cơ sở hạ tầng mà Google sử dụng để lưu trữ khóa của riêng mình. Các khóa được bảo vệ bởi Dịch vụ quản lý khóa của Google. Nếu bạn muốn tìm hiểu về cơ sở hạ tầng kỹ thuật của Google, hãy đọc Báo cáo chính thức về bảo mật Google Cloud .

Các ứng dụng Android được ký bằng một khóa riêng. Để đảm bảo rằng các bản cập nhật ứng dụng là đáng tin cậy, mọi khóa riêng tư đều liên kết tới một chứng chỉ công khai mà các thiết bị và dịch vụ có thể sử dụng để xác minh rằng ứng dụng đến từ một nguồn đáng tin cậy. Các thiết bị chỉ chấp nhận bản cập nhật khi chữ ký của bản cập nhật khớp với chữ ký của ứng dụng đã cài đặt. Việc cho phép Google quản lý khóa ký ứng dụng sẽ giúp quá trình này an toàn hơn.

Lưu ý: Việc sử dụng ứng dụng ký của Google Play là không bắt buộc. Bạn vẫn có thể tải APK lên và quản lý các khóa của riêng mình thay vì sử dụng một gói ứng dụng. Tuy nhiên, nếu bạn mất kho khóa hoặc kho khóa bị xâm nhập, bạn sẽ không thể cập nhật ứng dụng của mình mà không xuất bản ứng dụng mới với tên gói mới.

Mô tả về khóa, cấu phần phần mềm và công cụ
Điều khoản Mô tả
Khóa ký ứng dụng

Khóa mà Google Play sử dụng để ký các APK được gửi đến thiết bị của người dùng. Khi bạn chọn tính năng ký ứng dụng bằng Google Play, bạn có thể tải khóa ký ứng dụng hiện có lên hoặc yêu cầu Google tạo một khóa cho bạn.

Bạn không thể thay đổi khóa ký ứng dụng trong suốt vòng đời của ứng dụng. Hãy giữ kín khóa ký ứng dụng, nhưng bạn có thể chia sẻ chứng chỉ công khai của ứng dụng với người khác.

Khóa tải lên

Khóa bạn sử dụng để ký gói ứng dụng hoặc APK trước khi bạn tải lên Google Play. Hãy giữ kín khóa tải lên, nhưng bạn có thể chia sẻ chứng chỉ công khai của ứng dụng với người khác. Vì lý do bảo mật, khóa ký ứng dụng nên khác với khóa tải lên.

Có hai cách để tạo khóa tải lên:

  • Sử dụng khóa ký ứng dụng của bạn: Nếu Google tạo khóa ký ứng dụng cho bạn khi bạn chọn sử dụng tính năng ký ứng dụng, khóa bạn sử dụng cho lần phát hành đầu tiên cũng là khóa tải lên của bạn.
  • Sử dụng khóa tải lên riêng: Nếu bạn cung cấp khóa ký ứng dụng của riêng bạn khi bạn chọn tính năng ký ứng dụng, bạn sẽ được cung cấp tùy chọn tạo khóa tải lên mới để tăng tính bảo mật. Nếu bạn không tạo khóa, hãy sử dụng khóa ký ứng dụng làm khóa tải lên để ký phát hành.
Chứng chỉ (.der hoặc .pem)

Chứng chỉ chứa khóa công khai và thông tin nhận dạng thêm về người sở hữu khóa. Chứng chỉ khóa công khai cho phép mọi người xác minh ai đã ký gói ứng dụng hoặc APK. Bạn có thể chia sẻ chứng chỉ này với bất kỳ ai vì chứng chỉ không bao gồm khóa riêng của bạn.

Để đăng ký (các) khóa của bạn với các nhà cung cấp API, bạn có thể tải chứng chỉ công khai xuống cho khóa ký ứng dụng và khóa tải lên của bạn từ trang Ký ứng dụng trên Play Console. Bạn có thể chia sẻ chứng chỉ khóa công khai với bất kỳ ai. Chứng chỉ này không bao gồm khóa riêng tư của bạn.

Tệp tham chiếu chứng chỉ

Một tệp mô tả ngắn và duy nhất về chứng chỉ mà các nhà cung cấp API thường yêu cầu cùng với tên gói nhằm đăng ký một ứng dụng để sử dụng dịch vụ của họ.

Bạn có thể tìm thấy tệp tham chiếu MD5, SHA-1 và SHA-256 của chứng chỉ ký ứng dụng và tải lên trang Ký ứng dụng của Play Console. Bạn cũng có thể tính các tệp tham chiếu khác bằng cách tải chứng chỉ gốc (.der) xuống từ cùng một trang.

Khóa Java (.jks hoặc .keystore) Kho lưu trữ chứng chỉ bảo mật và khóa riêng tư.
Công cụ mã hóa khóa cá nhân cho Play (PEPK)

Một công cụ để xuất các khóa riêng từ kho khóa Java và mã hóa các khóa để chuyển sang Google Play.

Khi bạn cung cấp khóa ký ứng dụng cho Google sử dụng, hãy chọn tùy chọn xuất và tải khóa của bạn lên (và chứng chỉ công khai nếu cần) và làm theo hướng dẫn để tải xuống và sử dụng công cụ. Nếu bạn thích, bạn có thể tải xuống, xem lại và sử dụng mã nguồn mở của công cụ PEPK.

Quá trình ký ứng dụng

Bạn có thể tải APK được ký bằng khóa ký ứng dụng gốc lên trước hoặc sau khi bạn chọn tính năng ký ứng dụng của Google Play.

Nếu mới bắt đầu sử dụng, bạn có thể kiểm tra Android App Bundle trong các phiên bản thử nghiệm trong khi bạn sử dụng APK hiện có trong phiên bản sản xuất. Quá trình ký sẽ diễn ra như sau:

  1. Ký gói ứng dụng hoặc APK của bạn và tải lên Play Console.
  2. Tùy thuộc vào nội dung bạn tải lên, quá trình ký sẽ khác nhau:
    • Gói ứng dụng: Google tạo các APK được tối ưu hóa từ gói ứng dụng của bạn và ký APK bằng khóa ký ứng dụng.
    • APK đã ký bằng khóa tải lên: Google xác minh và xóa chữ ký của bạn khỏi APK, sau đó ký lại APK bằng khóa ký ứng dụng.
    • APK đã ký bằng khóa ký ứng dụng: Google sẽ xác minh chữ ký.
  3. Google cung cấp APK đã ký cho người dùng.

Đăng ký sử dụng tính năng ký ứng dụng của Google Play.

Ứng dụng mới

Bước 1: Tạo khóa tải lên

  1. Làm theo hướng dẫn, tạo khóa tải lên.
  2. Ký APK mới của bạn bằng khóa tải lên.

Bước 2: Chuẩn bị bản phát hành của bạn

  1. Thực hiện theo các hướng dẫn để chuẩn bị và triển khai bản phát hành của bạn.
  2. Sau khi bạn chọn bản phát hành, hãy định cấu hình ký ứng dụng trong phần "Cho phép Google quản lý và bảo vệ khóa ký ứng dụng của bạn".
  3. Chọn Tiếp tục. Hành động này làm cho khóa được tạo trở thành khóa tải lên của bạn, và bạn có thể sử dụng khóa tải lên này để ký các bản phát hành trong tương lai. Bạn cũng có thể chọn Tùy chọn nâng cao, bao gồm:
    • Sử dụng cùng một khóa với ứng dụng khác trên tài khoản nhà phát triển của bạn (Tùy chọn 2).
    • Tải khóa ký ứng dụng hiện có lên (Tùy chọn 2, 3 và 4): Chọn tùy chọn xuất và tải lên phù hợp nhất với bạn. Sau khi bạn tải khóa ký ứng dụng và chứng chỉ công khai lên, bạn có thể tạo khóa tải lên hoặc tiếp tục sử dụng khóa ký ứng dụng làm khóa tải lên.

Lưu ý: Bạn cần chấp nhận Điều khoản dịch vụ và chọn tính năng ký ứng dụng để tiếp tục.

Bước 3: Đăng ký khóa ký ứng dụng của bạn với nhà cung cấp API

Nếu ứng dụng của bạn sử dụng bất kỳ API nào, thì với mục đích xác thực bằng cách sử dụng dấu vân tay của chứng chỉ, thông thường bạn phải đăng ký chứng chỉ của khóa mà Google sử dụng để ký ứng dụng của bạn. Sau đây là nơi tìm chứng chỉ:

  1. Đăng nhập Play Console.
  2. Chọn ứng dụng.
  3. Trên menu bên trái, hãy chọn Quản lý bản phát hành > Ký ứng dụng.
  4. Sao chép tệp tham chiếu (MD5, SHA-1 và SHA-256) của chứng chỉ ký ứng dụng của bạn.
    • Nếu nhà cung cấp API yêu cầu một loại tệp tham chiếu khác thì bạn cũng có thể tải chứng chỉ gốc xuống ở định dạng .der và chạy thông qua công cụ chuyển đổi mà nhà cung cấp API yêu cầu.
Ứng dụng hiện có

Bước 1: Đăng ký tính năng ký ứng dụng của Google Play

  1. Đăng nhập Play Console.
  2. Chọn ứng dụng.
  3. Trên menu bên trái, hãy chọn Quản lý bản phát hành > Ký ứng dụng.
  4. Xem lại Điều khoản dịch vụ và chọn Chấp nhận nếu bạn chưa thực hiện việc này.

Bước 2: Gửi khóa ban đầu của bạn cho Google và tạo khóa tải lên

  1. Xác định vị trí khóa ký ứng dụng gốc của bạn.
  2. Đăng nhập Play Console.
  3. Chọn ứng dụng.
  4. Trên menu bên trái, hãy chọn Quản lý bản phát hành > Ký ứng dụng.
  5. Chọn tùy chọn xuất và tải lên phù hợp nhất với quy trình phát hành của bạn và tải khóa ký ứng dụng hiện có lên.

Bước 3: Tạo khóa tải lên (tùy chọn và được đề xuất)

  1. Tạo khóa tải lên và tải chứng chỉ lên Google Play.
    • Bạn cũng có thể tiếp tục sử dụng khóa ký ứng dụng làm khóa tải lên.
  2. Sao chép tệp tham chiếu (MD5, SHA-1 và SHA-256) của chứng chỉ ký ứng dụng của bạn.
    • Đối với mục đích thử nghiệm, bạn có thể cần phải đăng ký chứng chỉ khóa tải lên của mình với nhà cung cấp API bằng tệp tham chiếu của chứng chỉ và khóa ký ứng dụng.

Bước 4: Ký bản cập nhật ứng dụng tiếp theo bằng khóa tải lên

Khi bạn phát hành bản cập nhật cho ứng dụng của mình, bạn cần ký các bản đó với khóa tải lên.

  • Nếu bạn không tạo khóa tải lên mới: Tiếp tục sử dụng khóa ký ứng dụng gốc để ký các bản phát hành trước khi bạn tải chúng lên Google Play. Nếu bị mất khóa ký ứng dụng, bạn có thể tạo khóa tải lên mới và đăng ký khóa đó với Google để tiếp tục cập nhật ứng dụng của mình.
  • Nếu bạn đã tạo khóa tải lên mới: Sử dụng khóa tải lên mới của bạn để ký các bản phát hành trước khi tải lên Google Play. Sau khi bạn tải lên, Google sẽ kiểm tra bản phát hành để tìm khóa tải lên nhằm xác minh danh tính của bạn. NẾU bạn mất khóa tải lên, bạn có thể liên hệ với bộ phận hỗ trợ để đặt lại.

Tạo khóa tải lên và cập nhật kho khóa

Để tăng tính bảo mật, bạn nên ký ứng dụng bằng khóa tải lên mới, thay vì khóa ký ứng dụng.

Bạn có thể tạo khóa tải lên khi bạn chọn sử dụng tính năng ký ứng dụng của Google Play. Bạn cũng có thể tạo khóa tải lên sau bằng cách truy cập Quản lý phát hành > Ký ứng dụng.

Dưới đây là cách tạo khóa tải lên:

  1. Thực hiện theo các hướng dẫn trên trang web Nhà phát triển Android. Lưu trữ khóa của bạn ở một nơi an toàn.
  2. Xuất chứng chỉ cho khóa tải lên dưới định dạng PEM. Thay thế các đối số được gạch chân sau:
    • $ keytool -export -rfc -keystore upload-keystore.jks -alias upload -file upload_certificate.pem
  3. Khi được nhắc trong quá trình phát hành, hãy tải chứng chỉ lên để đăng ký với Google.

Khi bạn sử dụng khóa tải lên:

  • Khóa tải lên chỉ được đăng ký với Google để xác thực danh tính của người tạo ứng dụng.
  • Chữ ký của bạn sẽ bị xóa khỏi mọi APK đã tải lên trước khi chúng được gửi tới người dùng.
Hạn chế đối với khóa tải lên
  • Phải là khóa RSA dài từ 2048 bit trở lên.
  • Các khóa DSA, EC và RSA dưới 2048 bit không được hỗ trợ.
Cập nhật kho khóa

Sau khi bạn tạo khóa tải lên, dưới đây là một số vị trí bạn có thể muốn kiểm tra và cập nhật:

  • Máy cục bộ
  • Máy chủ tại chỗ đã khóa (ACL khác nhau)
  • Máy đám mây (ACL khác nhau)
  • Dịch vụ quản lý bí mật chuyên dụng
  • Kho lưu trữ (Git)

Nâng cấp khóa ký ứng dụng của bạn cho các lượt cài đặt mới

Trong một số trường hợp, bạn có thể yêu cầu nâng cấp khóa ký ứng dụng. Khóa mới của bạn được dùng để ký các bản cài đặt mới và bản cập nhật ứng dụng. Khóa ký ứng dụng cũ của bạn vẫn được dùng để ký các bản cập nhật cho người dùng đã cài đặt ứng dụng của bạn trước khi nâng cấp khóa.

Mỗi ứng dụng chỉ có thể được nâng cấp khóa ký ứng dụng một lần duy nhất trong suốt thời gian hoạt động. Trong trường hợp hiếm gặp là bạn có nhiều ứng dụng sử dụng cùng một khóa ký để chạy tring cùng một quy trình, bạn sẽ không thể sử dụng tính năng nâng cấp khóa cho các ứng dụng đó.

Dưới đây là một số lý do để yêu cầu nâng cấp khóa ký ứng dụng:

  • Bạn cần một khóa mã hóa mạnh hơn.
  • Khóa ký ứng dụng của bạn đã bị xâm phạm.

Lưu ý: Yêu cầu nâng cấp khóa ký ứng dụng trên Play Console không liên quan đến tính năng thay khóa đã triển khai trong sơ đồ chữ ký APK v3 cho Android P trở lên. Hiện tại, Google Play không hỗ trợ kiểu thay khóa này.

Những xem xét quan trọng trước khi yêu cầu nâng cấp khóa

Trước khi yêu cầu nâng cấp khóa, điều quan trọng là phải hiểu những thay đổi mà bạn có thể cần thực hiện sau khi quá trình nâng cấp hoàn tất.

  • Nếu sử dụng cùng một khóa ký ứng dụng cho nhiều ứng dụng để chia sẻ dữ liệu/mã giữa những ứng dụng này, bạn cần cập nhật ứng dụng của mình để nhận dạng cả chứng chỉ khóa ký ứng dụng mới và cũ.
  • Nếu ứng dụng của bạn sử dụng API, thì trước khi cập nhật ứng dụng, hãy đảm bảo đăng ký chứng chỉ cho khóa ký ứng dụng mới và cũ của bạn với các nhà cung cấp API trước khi xuất bản bản cập nhật để đảm bảo API tiếp tục hoạt động. Các chứng chỉ này nằm trên trang Ký ứng dụng trên Play Console.  
  • Nếu nhiều người dùng cài đặt bản cập nhật thông qua tính năng chia sẻ ngang hàng, họ sẽ chỉ có thể cài đặt các bản cập nhật được ký bằng khóa giống như khóa của phiên bản ứng dụng mà họ đã cài đặt. Nếu người dùng không thể cập nhật ứng dụng của mình vì phiên bản ứng dụng của họ được ký bằng một khóa khác, thì họ có tùy chọn gỡ cài đặt và cài đặt lại ứng dụng để nhận bản cập nhật.
Yêu cầu nâng cấp khóa cho các lượt cài đặt mới
  1. Đăng nhập Play Console.
  2. Chọn ứng dụng.
  3. Trên menu bên trái, hãy chọn Quản lý bản phát hành > Ký ứng dụng.
  4. Trong "Nâng cấp khóa ký ứng dụng của bạn cho các lượt cài đặt mới", hãy chọn Yêu cầu nâng cấp khóa.
  5. Chọn một tùy chọn.
    • Tùy thuộc vào tùy chọn bạn chọn, bạn có thể cần liên hệ với bộ phận hỗ trợ để hoàn thành yêu cầu của mình.
  6. Yêu cầu Google tạo khóa ký ứng dụng mới (được khuyến nghị) hoặc tải lên một khóa mới.
    • Sau khi nâng cấp khóa ký ứng dụng của bạn, nếu đang sử dụng cùng một khóa cho khóa ký ứng dụng và khóa tải lên thì bạn có thể tiếp tục sử dụng khóa ký ứng dụng cũ làm khóa tải lên hoặc tạo khóa tải lên mới.

Các phương pháp hay nhất

  • Nếu bạn cũng phân phối ứng dụng của mình bên ngoài Google Play hoặc dự định làm như vậy sau này, bạn có thể tạo khóa ký ứng dụng bạn muốn sử dụng cho mọi cửa hàng ứng dụng, sau đó tải khóa này lên Google khi bạn chọn sử dụng tính năng ký ứng dụng của Google Play.
  • Để bảo vệ tài khoản của bạn, hãy bật Xác minh 2 bước cho các tài khoản có quyền truy cập vào Play Console của bạn.
  • Sau khi xuất bản gói ứng dụng cho phiên bản thử nghiệm hoặc chính thức, bạn có thể truy cập trình khám phá gói ứng dụng để tải tệp lưu trữ ZIP chứa tất cả APK cho một thiết bị cụ thể xuống. Các APK này được ký bằng khóa ký ứng dụng và bạn có thể cài đặt APK trong kho lưu trữ ZIP trên một thiết bị bằng tiện ích dòng lệnh bundletool.
  • Để tăng tính bảo mật, hãy tạo khóa tải lên mới khác với khóa ký ứng dụng của bạn.
  • Nếu muốn kiểm tra APK đã ký bằng khóa tải lên, bạn cần phải đăng ký khóa tải lên bằng bất kỳ dịch vụ hoặc API nào sử dụng chữ ký của ứng dụng để xác thực, như API Google Maps hoặc SDK Facebook.
  • Nếu đang sử dụng bất kỳ API Google nào thì bạn nên đăng ký chứng chỉ tải lên trong Google Cloud Console cho ứng dụng của mình.

Khóa tải lên bị mất hoặc bị xâm phạm?

Nếu bị mất khóa tải lên riêng tư hoặc khóa đã bị xâm phạm, bạn có thể tạo một khóa mới và sau đó yêu cầu chủ tài khoản của bạn liên hệ với bộ phận hỗ trợ để đặt lại khóa. Khi liên hệ với bộ phận hỗ trợ, hãy đảm bảo chủ sở hữu tài khoản của bạn đính kèm tệp upload_certificate.pem.

Sau khi nhóm hỗ trợ của chúng tôi đăng ký khóa tải lên mới, bạn sẽ nhận được email và sau đó có thể cập nhật kho khóa của mình và đăng ký khóa của mình với các nhà cung cấp API.

Quan trọng: Việc đặt lại khóa tải lên của bạn không ảnh hưởng đến khóa ký ứng dụng mà Google Play sử dụng để ký lại APK trước khi gửi chúng cho người dùng.

Thông tin này có hữu ích không?
Chúng tôi có thể cải thiện trang này bằng cách nào?