签名证书是一个应用的所有者的信息描述和身份标记。
Android平台打包发布apk应用,需要使用数字证书(.keystore文件)进行签名,用于表明开发者身份。
HBuilder|HBuilderX中开发完成发布为原生App提交云端打包时,Android平台需要选择签名证书:
Android的应用安全管理模型,包括包名、证书、应用市场的账户。
包名是公开的,任何人都可以做一个apk包,包名和你的应用包名相同。那么如何防止仿冒包?
- 他人没有你的应用市场账户,就无法在市场发布仿冒包。
- 他人没有你的签名证书。不过这一点,现实中有很多问题,手机用户是没有识别能力的。大多数安卓手机上也无法查看应用的签名信息。
制作Android平台签名证书(以windows系统为例)
本人使用JDK的keytool工具生成签名,不像Apple证书那样收费,制作Android证书没有费用。
安装JRE环境
可从Oracle官方下载jre安装包:https://www.oracle.com/technetwork/java/javase/downloads/index.html
(注:JDK包含JRE)
下面以安装目录为“C:\Program Files\Java\jdk-12.0.1”为例
建议将JDK安装路径添加到系统环境变量
打开命令行(cmd),输入以下命令:
d:
setPATH=%PATH%;"C:\Program Files\Java\jdk-12.0.1"
第一行:切换工作目录到D:路径
第二行:将jdk命令添加到临时环境变量中
生成签名证书
使用keytool -genkey命令生成证书:
keytool -genkey -alias AAAAAA -keyalg RSA -keysize 2048 -validity 36500 -keystore BBBBBB.keystore
AAAAAA是证书别名,可修改为自己想设置的字符,建议使用英文字母和数字
BBBBBB.keystore是证书文件名称,可修改为自己想设置的文件名称(.keystore后缀不能少,否则选择证书文件时找不到.keystore文件)
回车后会提示:
Enter keystore password://输入证书文件密码,输入完成回车
Re-enternewpassword://再次输入证书文件密码,输入完成回车
Whatisyour first and last name?
[Unknown]://输入名字和姓氏,输入完成回车
Whatisthe name of your organizational unit?
[Unknown]://输入组织单位名称,输入完成回车
Whatisthe name of your organization?
[Unknown]://输入组织名称,输入完成回车
Whatisthe name of your City or Locality?
[Unknown]://输入城市或区域名称,输入完成回车
Whatisthe name of your State or Province?
[Unknown]://输入省/市/自治区名称,输入完成回车
Whatisthe two-letter country codeforthisunit?
[Unknown]://输入国家/地区代号(两个字母),中国为CN,输入完成回车
Is CN=XX, OU=XX, O=XX, L=XX, ST=XX, C=XX correct?
[no]://确认上面输入的内容是否正确,输入y,回车
Enter key passwordfor (RETURNifsameaskeystore password)://确认证书密码与证书文件密码一样
//(HBuilder|HBuilderX要求这两个密码一致)直接回车就可以
以上命令运行完成后就会生成证书,路径为“D:\test.keystore”。
可以使用以下命令查看证书信息:
keytool -list -v -keystore BBBBBB.keystore
Enter keystore password://输入密码,回车
以上就是生成证书的方法,可以用于开发环境也可以用于正式环境。