您的位置:首页 > 移动开发

创建自己的pk8, x509.pem并给app签名

2015-01-16 10:28 1531 查看
1, 生成key

命令: keytool -genkey -v -keystore app.keystore -alias gundam_wing -keyalg RSA -validity 20000

控制台输出:

输入密钥库口令:

再次输入新口令:

您的名字与姓氏是什么?

[Unknown]: TechStone

您的组织单位名称是什么?

[Unknown]: Gundam

您的组织名称是什么?

[Unknown]: Gundam

您所在的城市或区域名称是什么?

[Unknown]: Shanghai

您所在的省/市/自治区名称是什么?

[Unknown]: Shanghai

该单位的双字母国家/地区代码是什么?

[Unknown]: zh

CN=TechStone, OU=Gundam, O=Gundam, L=Shanghai, ST=Shanghai, C=zh是否正确?

[否]: Y

正在为以下对象生成 2,048 位RSA密钥对和自签名证书 (SHA256withRSA) (有效期为 20,000 天):

CN=TechStone, OU=Gundam, O=Gundam, L=Shanghai, ST=Shanghai, C=zh

输入 <gundam_wing> 的密钥口令

(如果和密钥库口令相同, 按回车):

[正在存储app.keystore]

这个命令会生成带组织/个人信息的key,并存放在app.keystore文件中

2, 转换key的格式

命令:keytool -importkeystore -srckeystore app.keystore -destkeystore tmp.p12 -srcstoretype JKS -deststoretype PKCS12

控制台会提示输出tmp.p12的密码以及app.keystore的密码,输入正确之后将会生成tmp.p12文件。

3, 将PKCS12格式的key dump为可直接阅读的文本

命令:openssl pkcs12 -in tmp.p12 -nodes -out tmp.rsa.pem

dump过程中也会提示输入密码,正确输入之后可阅读的token会存储在tmp.rsa.pem中

4, 提取

用文本编辑器打开tmp.rsa.pem,将从

-----BEGIN PRIVATE KEY-----



-----END PRIVATE KEY-----

这一段(包含这两个tag)的文本复制出来,新建为文件my_private.rsa.pem

将从
-----BEGIN CERTIFICATE-----

-----END CERTIFICATE-----
这一段(包含这两个tag)的文本复制出来,新建为文件my.x509.pem (签名时用到的公钥)

5, 转换,生成pk8格式的私钥
openssl pkcs8 -topk8 -outform DER -in my_private.rsa.pem -inform PEM -out
my_private.pk8 -nocrypt
这个生成的my_private.pk8就是签名时用到的私钥

6, 对apk签名
java -jar signapk.jar my.x509.pem my_private.pk8 my.apk
my_signed.apk

==============================================================
本文章参考: /article/2504170.html 获取各种key格式转换的知识

增加了生成keystore文件的步骤。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: