# 创建Android证书

# 使用AndroidStudio

Android Studio 运行或测试我们的App时,它使用一个默认的debug.keystore进行签名,这个默认签名是不需要密码的,它的默认位置在 $HOME/.android/debug.keystore,如果不存在Android studio会自动创建它,但我们正式发布项目的时候是不能使用debug.keystore的。

下面介绍如何使用 Android Studio 生成自己的 keystore。

Build >> Generate Signed APK

Create New

填写相关信息

使用我们创建的keystore

选择发布app的路径默认即可,选择release方式发布

# 使用Mac命令行

与Windows环境下创建Android证书方法一致,Mac环境下Android证书也要基于keytool工具创建。

# Java环境

首先需要下载并安装Java (opens new window),如果已安装Java可跳过本小节。Java官网提供的是dmg安装文件,按照指引流程完成Java安装即可。

安装完成后可在终端中输入keytool命令,如果出现如下信息则表明安装成功:

17:55:04 with gmu in ~
➜ keytool
密钥和证书管理工具

命令:

 -certreq            生成证书请求
 -changealias        更改条目的别名
 -delete             删除条目
 -exportcert         导出证书
 -genkeypair         生成密钥对
 -genseckey          生成密钥
 -gencert            根据证书请求生成证书
 -importcert         导入证书或证书链
 -importpass         导入口令
 -importkeystore     从其他密钥库导入一个或所有条目
 -keypasswd          更改条目的密钥口令
 -list               列出密钥库中的条目
 -printcert          打印证书内容
 -printcertreq       打印证书请求的内容
 -printcrl           打印 CRL 文件的内容
 -storepasswd        更改密钥库的存储口令

使用 "keytool -command_name -help" 获取 command_name 的用法

# 创建证书

证书可通过如下命令创建:

keytool -genkey -alias android.keystore -keyalg RSA -validity 20000 -keystore android.keystore
  • alias: 证书别名
  • validity: 证书有效时长(以天为单位)
  • keystore: 证书文件名称

证书创建流程中需要提供密钥/密钥库口令以及一些其他附加信息:

17:55:09 with gmu in ~
➜ keytool -genkey -alias android.keystore -keyalg RSA -validity 20000 -keystore android.keystore
输入密钥库口令:
再次输入新口令:
您的名字与姓氏是什么?
  [Unknown]:  GMU
您的组织单位名称是什么?
  [Unknown]:  RDC
您的组织名称是什么?
  [Unknown]:  Hundsun
您所在的城市或区域名称是什么?
  [Unknown]:  Hangzhou
您所在的省/市/自治区名称是什么?
  [Unknown]:  Zhejiang
该单位的双字母国家/地区代码是什么?
  [Unknown]:  CN
CN=GMU, OU=RDC, O=Hundsun, L=Hangzhou, ST=Zhejiang, C=CN是否正确?
  [否]:  y

输入 <android.keystore> 的密钥口令
	(如果和密钥库口令相同, 按回车):
再次输入新口令:

Warning:
JKS 密钥库使用专用格式。建议使用 "keytool -importkeystore -srckeystore android.keystore -destkeystore android.keystore -deststoretype pkcs12" 迁移到行业标准格式 PKCS12。

完成以上信息录入后可以在当前目录下看到证书android.keystore:

17:56:09 with gmu in ~
➜ ls
android.keystore

# 证书查看

证书信息可以通过如下命令查看:

18:01:15 with gmu in ~
➜ keytool -list -keystore "android.keystore"
输入密钥库口令:
密钥库类型: JKS
密钥库提供方: SUN

您的密钥库包含 1 个条目

android.keystore, 2021-9-8, PrivateKeyEntry,
证书指纹 (SHA-256): E8:1F:66:3B:EE:FE:86:36:66:F7:A4:3E:66:2D:19:82:5B:FE:A0:6E:66:66:75:05:74:8C:52:85:66:CC:28:1C

Warning:
JKS 密钥库使用专用格式。建议使用 "keytool -importkeystore -srckeystore android.keystore -destkeystore android.keystore -deststoretype pkcs12" 迁移到行业标准格式 PKCS12。

# 使用Windows命令行

dos下进入JDK的bin目录

运行如下命令:

keytool -genkey -alias android.keystore -keyalg RSA -validity 20000 -keystore android.keystore

根据提示完成密钥创建。

命令中alias后面的是keystore别名(与信息填写最后一项的密钥口令对应),validity后面的是keystore的有效时长(以天为单位)。-keystore后面的是keystore文件的名称。

命令完成后,bin目录中会生成android.keystore。

查看命令keytool -list -keystore “android.keystore” ,输入你设置的keystore密码。