Android 数字证书概述

本文发布于 9 年前,部分内容可能已经失去参考价值。

Android 系统要求每一个安装进系统的应用程序都是经过数字证书签名的,数字证书的私钥则保存在程序开发者的手中。Android 系统将数字证书用于在应用程序的作者和应用程序之间建立信任关系,但并不用于决定最终用户可以安装哪些应用程序。这个数字证书并不需要权威的数字证书签名机构认证,它只是用于应用程序包自我认证的。

Android 数字证书包含以下几个要点:

(1)所有的应用程序都必须有数字证书,Android 系统不会安装一个没有数字证书的应用程序

(2)Android 程序包使用的数字证书可以是自签名的,不需要一个权威的数字证书机构签名认证

(3)如果要正式发布一个 Android 应用程序安装包,必须使用一个合适的私钥生成的数字证书来给程序签名,而不能使用如 ant 工具等生成的调试证书来发布。

(4)数字证书包含应用程序所有者姓名,所在组织,国家,证书创建时间,证书有效期等信息。

(5)Android 使用标准的 Java 工具 Keytool and Jarsigner 来生成数字证书,并给应用程序包签名。

(6)Android 数字证书跟包名无关,多个不同包名的应用程序安装包可使用同一个数字证书对其进行签名。

(7)Android 系统不会覆盖安装运行包名相同,签名证书不同的两个安装包。

注意:如果您的 App 已经上线 Android 市场,或者已经正式发布,有用户已经正式使用了,切勿再更换签名证书,否则,App 在自动更新覆盖安装升级时,Android 系统将会认为新签名证书的 App 安装包是“非法签名”的 App,而不予安装,导致更新失败,流失用户。
可能相关的内容