使用Keytools生成安卓证书

keytool简介

keytool 是java 用于管理密钥和证书的工具,其功能包括:创建并管理密钥,创建并管理证书,作为CA 为证书授权,导入导出证书。


主要格式

keytool 采用 keystore 文件来存储密钥及证书,其中可包括私钥、信任证书;

keystore 文件主要使用 JKS格式(也可支持其他格式),带密钥存储;其中私钥的存储也有独立的密码;


生成签名证书

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

keytool -genkey -alias testalias -keyalg RSA -keysize 2048 -validity 36500 -keystore test.keystore


testalias是证书别名,可修改为自己想设置的字符,建议使用英文字母和数字

test.keystore是证书文件名称,可修改为自己想设置的文件名称


回车后会提示:

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要求这两个密码一致),直接回车就可以

以上命令运行完成后就会生成证书,路径为“D:\test.keystore”。



查看证书信息

可以使用以下命令查看:

keytool -list -v -keystore test.keystore  

Enter keystore password: //输入密码,回车

会输出以下格式信息:


Keystore type: PKCS12   

Keystore provider: SUN   


Your keystore contains 1 entry   


Alias name: test   

Creation date: 2019-10-28   

Entry type: PrivateKeyEntry   

Certificate chain length: 1   

Certificate[1]:   

Owner: CN=Tester, OU=Test, O=Test, L=HD, ST=BJ, C=CN   

Issuer: CN=Tester, OU=Test, O=Test, L=HD, ST=BJ, C=CN   

Serial number: 7dd12840   

Valid from: Fri Jul 26 20:52:56 CST 2019 until: Sun Jul 02 20:52:56 CST 2119   

Certificate fingerprints:   

     MD5: F9:F6:C8:1F:DB:AB:50:14:7D:6F:2C:4F:CE:E6:0A:A5   

     SHA1: BB:AC:E2:2F:97:3B:18:02:E7:D6:69:A3:7A:28:EF:D2:3F:A3:68:E7   

     SHA256: 24:11:7D:E7:36:12:BC:FE:AF:2A:6A:24:BD:04:4F:2E:33:E5:2D:41:96:5F:50:4D:74:17:7F:4F:E2:55:EB:26   

Signature algorithm name: SHA256withRSA   

Subject Public Key Algorithm: 2048-bit RSA key   

Version: 3

其中证书指纹信息(Certificate fingerprints):


MD5

证书的MD5指纹信息(安全码MD5)

SHA1

证书的SHA1指纹信息(安全码SHA1)

SHA256

证书的SHA256指纹信息(安全码SHA245)



macOS 上获取 keytool 的位置

在terminal下输入: /usr/libexec/java_home -V


真诚赞赏,手留余香
赞赏
随机推荐
该不该删除数据——关于软删除
语法图(Syntax diagram)、铁路图(railroad diagrams)
SQLite数据库的id字段,怎么设置成从1开始自增
JS事件冒泡与捕获、addEventListener--实例演示
jQuery Ajax用法示例
Javascript循环
Vue Router
apiDoc 参考
Node.js i18n 国际化实现语言切换
browser-sync 浏览器自动刷新