Android平台签名证书(.keystore)生成指南

Android平台打包发布apk应用,需要使用数字证书(.keystore文件)进行签名,用于表明开发者身份。

Android证书的生成是自助和免费的,不需要审批或付费。

可以使用JRE环境中的keytool命令生成。以下是windows平台生成证书的方法:

安装JRE环境(推荐使用JRE8环境,如已有可跳过)
在控制台输入cmd 输入java查询版本号
在这里插入图片描述

可从Oracle官方下载jre安装包:https://www.oracle.com/technetwork/java/javase/downloads/index.html
在这里插入图片描述

下面以Windows平台,jre安装目录为“C:\Program Files\Java\jdk1.8.0_301”为例,实际操作时请修改为自己安装目录
建议将JRE安装路径添加到系统环境变量,已配置可跳过此章节
打开命令行(cmd),输入以下命令:

d:  
set PATH=%PATH%;"C:\Program Files\Java\jdk1.8.0_301\bin"

第一行:切换工作目录到D:路径,生成的证书也会保存这个目录下
第二行:将jre命令添加到临时环境变量中

因为是临时环境,当你退出重新进入,如果没有配置过环境,也需要配置临时环境再输入keytool相关操作

生成签名证书

使用keytool -genkey命令生成证书:

keytool -genkey -alias testalias -keyalg RSA -keysize 2048 -validity 36500 -keystore test.keystore
//test.keystore为证书名,我这里建立的是一个案例

testalias是证书别名,可修改为自己想设置的字符,建议使用英文字母和数字
test.keystore是证书文件名称,可修改为自己想设置的文件名称,也可以指定完整文件路径
36500是证书的有效期,表示100年有效期,单位天,建议时间设置长一点,避免证书过期
回车后会提示:

Enter keystore password:  //输入证书文件密码,输入完成回车  
Re-enter new password:   //再次输入证书文件密码,输入完成回车  
What is your first and last name?  
  [Unknown]:  //输入名字和姓氏,输入完成回车  
What is the name of your organizational unit?  
  [Unknown]:  //输入组织单位名称,输入完成回车  
What is the name of your organization?  
  [Unknown]:  //输入组织名称,输入完成回车  
What is the name of your City or Locality?  
  [Unknown]:  //输入城市或区域名称,输入完成回车  
What is the name of your State or Province?  
  [Unknown]:  //输入省/市/自治区名称,输入完成回车  
What is the two-letter country code for this unit?  
  [Unknown]:  //输入国家/地区代号(两个字母),中国为CN,输入完成回车  
Is CN=XX, OU=XX, O=XX, L=XX, ST=XX, C=XX correct?  
  [no]:  //确认上面输入的内容是否正确,输入y,回车  

Enter key password for <testalias>  
        (RETURN if same as keystore password):  //确认证书密码与证书文件密码一样(HBuilder|HBuilderX要求这两个密码一致),直接回车就可以

中文版本:

C:\Users\panda-tu>keytool -genkey -alias testalias -keyalg RSA -keysize 2048 -validity 36500 -keystore panda.keystore
输入密钥库口令: //不可见形式,输入不可见,但是系统记录了
再次输入新口令://不可见形式,输入不可见,但是系统记录了
您的名字与姓氏是什么?
  [Unknown]:  panda
您的组织单位名称是什么?
  [Unknown]:  APE
您的组织名称是什么?
  [Unknown]:  APE
您所在的城市或区域名称是什么?
  [Unknown]:  QingYuan
您所在的省//自治区名称是什么?
  [Unknown]:  guangdong
该单位的双字母国家/地区代码是什么?
  [Unknown]:  CN
CN=panda, OU=APE, O=APE, L=QingYuan, ST=guangdong, C=CN是否正确?
  []:  Y

上命令运行完成后就会生成证书,路径为“D:\test.keystore” 上面步骤切换的工作路径里

注意:上述信息填写要规范,乱填有可能会影响应用上架应用市场。

查看证书信息

可以使用以下命令查看:

keytool -list -v -keystore test.keystore  

会输出以下信息

输入密钥库口令:
密钥库类型: PKCS12
密钥库提供方: SUN

您的密钥库包含 1 个条目

别名: testalias
创建日期: 2021714日
条目类型: PrivateKeyEntry
证书链长度: 1
证书[1]:
所有者: CN=panda, OU=APE, O=apache, L=qingcheng, ST=qingyuan, C=CN
发布者: CN=panda, OU=APE, O=apache, L=qingcheng, ST=qingyuan, C=CN
序列号: 32c4c4831891d686
生效时间: Wed Jul 14 09:00:17 CST 2021, 失效时间: Fri Jun 20 09:00:17 CST 2121
证书指纹:
         SHA1: BA:1F:F0:46:F6:AE:5E:BF:4E:E5:14:70:A3:B0:5B:EC:8D:74:51:F7
         SHA256: 24:2F:48:28:45:97:46:C2:58:28:30:C2:4E:A2:4F:96:8E:7B:B1:24:28:F1:FA:31:BF:D3:70:BB:9A:61:2F:CB
签名算法名称: SHA256withRSA
主体公共密钥算法: 2048 位 RSA 密钥
版本: 3

当查看时,出现以下情况时,说明jdk的环境没配置好

C:\Users\panda-tu>keytool -list -v -keystore test.keystore
'keytool' 不是内部或外部命令,也不是可运行的程序
或批处理文件。

可以用上面的方法,在工作目录下创建临时的环境

C:\Users\panda-tu>set PATH=%PATH%;"C:\Program Files\Java\jdk1.8.0_301\bin"

继续操作即可

参考:https://ask.dcloud.net.cn/article/35777

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值